Processing快速使用

这篇具有很好参考价值的文章主要介绍了Processing快速使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

-----processing的代码编写流程主要包括2部分,setup()和draw(),等同于Start()和Update()。setup用于设置程序的属性,如画布的大小、背景色、要导入的图片、字体等。draw用于循环执行绘图指令,如点、线、圆、图片等等。代码区分大小写,所有语句以分号";"结尾。

-----变量类型:

processing.draw,# unity项目总结,java

-----系统变量

processing.draw,# unity项目总结,java

processing.draw,# unity项目总结,java

mouseX,mouseY和pmouseX,pmouseY分别表示鼠标当前位置和上一帧的位置。

其它的算术运算符,关系操作符,逻辑操作符,条件判断都跟C#中一致。

坐标原点在窗口左上角,左上角坐标为(0,0),朝右为x轴正方向,朝下为y轴正方向。

-----图形

point(x,y)                       --画点,参数为点的坐标

line(x1,y1,x2,y2)            --画线,参数为2个点的坐标

rect(x,y,w,h)                   --画矩形,参数为坐标以及宽高

ellipse(x,y,w,h)               --画椭圆,参数为坐标以及x和y直径

arc(x,y,w,h,r1,r2)        --画圆弧形,参数为坐标以及x和y直径,最后两个参数为开始和结束角度,角度有两种表示方法:PI和radians(angle),其中PI为圆周率,PI等于radians(180)。不填充则画圆弧线,填充则画扇形。

triangle(x1,y1,x2,y2,x3,y3)        --画三角形,参数为3个点的坐标

quad(x1,y1,x2,y2,x3,y3,x4,y4)        --画四边形,参数为4个点的坐标 

bezier(x1,y1,cx1,cy1,cx2,cy2,x2,y2)        --画贝塞尔曲线,参数x1,y1,x2,y2为起点和终点坐标,cx1,cy1,cx2,cy2为两个控制点坐标。

绘制直线边框自由图形:beginShape()、vertex()、endShape(),beginShape()是绘制图形开始,vertex(x,y)是连接图形的点,endShape(CLOSE)指绘制图形结束,CLOSE参数表示闭合。

绘制曲线边框自由图形:beginShape()、vertex()、bezierVertex()、endShape(),vertex(x,y)是图形起始点,bezierVertex(cx1,cy1,cx2,cy2,x,y),前面4个参数是控制点坐标,x,y表示曲线另一个点坐标。

----色彩

颜色的形式包括:灰阶、灰阶含透明度、彩色、彩色含透明度。

color(灰阶)、color(灰阶,透明度)、color(R,G,B)、color(R,G,B,透明度),使用颜色的函数同理可使用4种色彩,如background、fill、stroke

----绘画属性

size(宽,高)                  --设置画布的大小

background(color)                --设置画布颜色

fill(color)                        --画图形时填充颜色

noFill()                          --画图形时不填充颜色

stroke()                        --指定线条颜色

noStroke()                    --不画线条

strokeWeight(num)                --指定线条宽度为几个像素

strokeCap(mode)        --指定线条端点模式,SQUARE-方形、PROJECT-方形延申、ROUND-圆形

strokeJoin(mode)        --指定线条折角模式,MITER-尖角、BEVEL-斜角、ROUND-圆角

smooth()                        --开启平滑模式,消耗性能,抗锯齿

noSmooth()                   --关闭平滑模式,绘制快,有锯齿

----绘制顺序:代码越在后面绘制的图形越显示在前面

----重要函数

dist(x1,y1,x2,y2)        --求两点之间的距离

random(num)              --产生0-num范围内的浮点数

int(random(num))        --产生0-num-1范围内的整数

constrain(value,min.max)        --将value的值限制在min和max之间,例如鼠标位置

----鼠标响应事件

void mousePressed()、void mouseMoved()、void mouseDragged(),分别表示按下、移动、拖拽。其中mousePressed()函数等同于系统变量 if(mousePressed)。系统变量mouseButton包含3个值:LEFT、RIGHT、CENTER,分别代表左键、右键和中键。

----键盘响应

主要包括keyPressed按击键响应、key特定按键响应、keyCode功能键响应。

keyPressed表示按下键盘上任意一个键所产生的响应。void keyPressed()等同于if(keyPressed)

key表示只针对某个键的响应事件。例如在if(keyPressed)中加入if(key == 'a')表示A键按下。

功能键响应包括ALT、CONTROL、SHIFT、方向键(UP、DOWN、LEFT、RIGHT)。例如在if(keyPressed)中加入if(key == LEFT)表示方向左键按下。

---曲线轨迹运动

->绕画布中心的做圆周运动

float r = 50;
float a = 0;

void setup()
{
  size(300,300);
  background(0);
  smooth();
  strokeWeight(5);
  stroke(255,0,0,100);
  fill(100);
}
void draw()
{
  float x = r * cos(a);
  float y = r * sin(a);
  ellipse(width/2 + x,height/2 + y, 100, 100);
  a += 0.1;
}

----坐标转移、旋转与缩放

translate(x,y,z)函数用于转换坐标原点,其中的x,y,z值决定了坐标原点的位置。一般translate(x,y)

rotate(角度)按照设定的角度旋转相应的图形。参数是弧度,范围0-TWO_PI,可以使用radians()将角度转换成弧度(如radians(45))。函数是顺时针转动图形,且永远围绕原点旋转。如果要让图形不围绕左上角原点旋转,需要使用translate()将原点进行转移。

scale(num)表示缩放图形,如参数0.5表示缩放到原来的一半,参数2表示放大一倍。

pushMatrix()与popMatrix()

pushMatrix()是把当前的旋转数据和坐标数据放入矩阵堆栈中。

popMatrix()则是重新回到程序最开始的坐标系统。

pushMatrix()和popMatrix()一起使用,把当前旋转函数和坐标转移函数放在中间,就可以单独控制不同图形的旋转与坐标,图形之间的旋转或坐标转移不会相互影响。

----时间控制

millis()        --从程序开始运行到当前的时间(毫秒)

second()        --从程序开始运行到当前的时间(秒)

minute()        --从程序开始运行到当前的时间(分)

hour()        --从程序开始运行到当前的时间(分)

----面向对象编程

可以创建新的文件,里面定义类,文件放在同个工程下就可以直接引用,具体操作时,点击编辑器的脚本文件右边的下拉箭头符号,选择"新建标签"创建新的文件就行,默认就是在同个目录下。

processing.draw,# unity项目总结,java

定义类包含4部分:

1.定义类名,class 名称{}

2.定义类的变量。

3.构造函数。可以是无参或有参,实例化类对象时用new。

4.定义方法。方法不用加public修饰,外部也能直接调用函数。

----图片与文字

        支持的图片格式有gif、jpg、png和tga。调用图片的基本步骤有4个,准备好图片、定义图片变量、载入图片至变量、显示图片。

        图片文件必须存储位于项目文件夹里的data文件夹中。在"Sketch"菜单(速写本)中选择"AddFile"命令,在浏览窗口选择一张图片,那项目文件夹下会多了一个data文件夹,刚才选择的图片储存在其中。

        其次,定义图片变量。语法:PImage 变量名称。

        接着,载入图片至变量。loadImage()将图片载入到图片变量中。

        最后,用函数image()显示图片。Image()有两种形式:image(图片变量,坐标x,坐标y)和image(图片变量,坐标x,坐标y,宽度,高度)。

        tint()用于设置图片的色彩填充值。tint()有集中设置形式:tint(明度),明度值0-255。tint(明度,透明度)。tint(R,G,B)。tint(R,G,B,透明度)。

        PImage的width和height分别表示图片的宽高,“x+y*width”是指某个像素在图片中所处的位置。再运用loadPixels()获取图片像素数据,并传递给pixels[],pixels[x+y*width]代表某个像素。

PImage image1;

void setup()
{
  size(600,300);
  background(0);
  image1 = loadImage("1.png");
}

void draw()
{
  tint(255);
  image(image1,0,0);
}

----字体

        可以调用字体来显示文字,步骤如下:

        1、在“工具”菜单中选择"创建字体",选择一种字体,然后点OK,之后会创建vlw格式的字体被放入data文件夹中。vlw是processing特有的字体格式。

        2、声明PFont类型的变量。

        3、使用loadFont()载入字体至变量。

        4、textFont()用于为文本指定字体。

        5、最后使用text()显示文本。

        createFont()允许直接使用电脑中的字体,还允许字体缩放到任意大小而不影响显示质量。

PFont f = createFont("Arial",36,true);//字体名,字体大小,是否开启平滑

----视频

        对视频的处理分为两种:一种是处理视频文件,另一种是处理摄像头输入的实时视频。

播放视频文件

1、添加视频至data目录,与图片处理方法相同。

2、编写代码是要首先导入视频库。在"速写本"菜单中选择"引用库文件",然后选择"Video Library for processing 3",就会生成一行代码"import processing.video.*;"。

3、使用Movie定义视频变量。

4、加载视频至变量。Movie movie = new Movie(this,"bg.mp4");

5、使用image()函数显示视频。

import processing.video.*;

Movie movie;

void setup()
{
  size(320,240);
  background(0);
  movie = new Movie(this,"bg2.mov");
  movie.loop();
}

void movieEvent(Movie m) {
  m.read();
}

void draw()
{
  image(movie,0,0,width,height);
}

重要函数有:play()播放、pause()暂停、loop()循环、jump()跳转到特定时间点、duration()视频长度、speed()设置播放速度。

----Minim音频

播放音频步骤:

1、通过"速写本"菜单中的"添加文件"将音频文件加入到data目录下。

2、导入音频库。通过"速写本"菜单中"引用库文件",选择Minim库,脚本中会自动生成导入库代码

import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;

AudioPlayer player;
Minim minim;

void setup()
{
  size(300,300);
  minim = new Minim(this);
  player = minim.loadFile("bg.mp3");
  //player.play();
  player.loop();
}
void draw()
{
}

重要函数有:play()播放、pause()暂停、loop()循环播放、skip()快进或快退多少毫秒。

注意:必须要有draw()函数才能播放出音频,不知道什么原因。文章来源地址https://www.toymoban.com/news/detail-810321.html

到了这里,关于Processing快速使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 后处理(Post-Processing) -- (1)概览

            在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。         这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是

    2024年02月06日
    浏览(42)
  • Unity 场景烘培 ——unity Post-Processing后处理1(四)

    提示:文章有错误的地方,还望诸位大神不吝指教! Post-Processing是一块内容很多知识,想要学习好这块简单大家还是多去网上查阅资料。 因为博客嘛,整理简单的东西还可以,太复杂了就显得不够用了。我会整理我学习的步骤给大家,大家也去看看,甚至于也去写一份博客

    2024年02月05日
    浏览(44)
  • Unity 后处理(Post-Processing) -- (2)创建后处理配置文件

            通过前面一小节,我们初步认识了后处理是什么,在Unity中简单的试了试后处理的效果。本节我们来创建一个我们自己的后处理配置文件(post-processing profile)。         一个后处理配置文件包含了一系列为了达到特定视觉效果的后处理效果的配置。后处理配置文件

    2024年02月09日
    浏览(56)
  • processing:使用processing.net向flask发送请求并接收响应

    Network Library使在互联网上跨机器读写数据成为可能,它允许在processing中创建客户端和服务器,客户端能够读取数据并将数据写入服务器 客户端连接到服务器并来回发送数据,如果连接出现问题,则会引发异常 Constructors:Client(parent, host, port) Parameters: -parent:通常使用\\\"this\\\"

    2024年02月16日
    浏览(47)
  • Unity技美35——再URP管线环境下,配置post后期效果插件(post processing)

    前两年在我的unity文章第10篇写过,后效滤镜的使用,那时候大部分项目用的还是unity的基础管线,stander管线。 但是现在随着unity的发展,大部分项目都用了URO管线,甚至很多PC端用的都是高效果的HDRP管线,这就导致以前的方法配置post后效,画面中没有效果。因此专门写一个

    2024年02月02日
    浏览(45)
  • 执行Spring Boot项目时报错:Lombok requires enabled annotation processing

    在使用 Lombok 时,你需要启用注解处理器(annotation processing)。下面是一些步骤来启用注解处理器: 确保已在项目中添加了 Lombok 的依赖。可以在项目的构建配置文件(如 Maven 的 pom.xml 或 Gradle 的 build.gradle)中添加以下依赖项: 在 IntelliJ IDEA 中打开项目设置(File - Settings)。

    2024年02月06日
    浏览(39)
  • 【IDEA大项目依赖分析卡死-解决方案】Processing build files for dependencies analysis...

    最近一直在研究一个大型项目,在IDEA里面启动调试的时候,IDEA经常会进行Processing build files for dependencies analysis…(处理构建文件进行依赖分析),并且在这个步骤耗时太久甚至直接卡死。经过一些排查找到了解决方案。 IDEA经常会进行Processing build files for dependencies analysis…(

    2024年02月14日
    浏览(56)
  • Zynq7020 使用 Video Processing Subsystem 实现图像缩放

    没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下:1:Xilinx的HLS方案,该方案简单,易于实现,但只能用于Xilinx自家的FPGA;2:非纯Verilog方案,大部分代码使用Verilog实现,但中间的fifo或

    2024年01月16日
    浏览(41)
  • 项目报错:Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment$Discover

    1.idea左上角File-》Project Structure-》Project,如下图将版本改为1.8.后成功解决问题! p.s:之前一直都有这个还习惯,今天脑子犯病了

    2024年01月15日
    浏览(54)
  • Maven打包项目报错:Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment

    因为JDK版本太高与项目中使用的jdk版本不匹配,比如本例中的项目使用的是JDK8,结果导入自动配置的是JDK17。 1、修改Project SDK版本,JDK17改为JDK8,或者其他低版本。 2、修改Seting里面的Compiler的java版本

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包