processing学习
Processing学习笔记
1 | line(x1,y1,x2,y2)#直线 |
填充和描边颜色会影响绘制到屏幕上的所有几何图形,直到下一个填充和描边函数为止。
交互式程序
1 | def setup(): |
setup()块执行一次,draw()重复运行,mousePressed()当鼠标按下时执行。
saveFrame( )将保存程序输出的 TIFF 格式图像的编号序列
渲染器
1 | size(400, 400, P2D) |
基本绘图
1 | line |
1 | stroke描边 |
自定义颜色范围
1 | colorMode(RGB,100) |
交互式控制
1 | def draw(): |
屏幕宽度和高度分别为width
和height
pmouseX
和pmouseY
存储前一帧的鼠标值
mousePressed
检测鼠标按下状态
mouseButton
检测鼠标按下按键
strokeWeight
设置描边的粗细
key
保存最近按下的按键,text
输出文字消息,textSize
设置文字大小。
1 | if (key == CODED): |
鼠标事件
鼠标事件函数有 mousePressed()、mouseReleased()、mouseMoved() 和 mouseDragged()
键盘事件
keyPressed()和keyReleased()
事件流程
draw()函数每秒显示60帧,noLoop()停止draw()循环,Loop()恢复操作,
redraw()运行draw()中的代码一次,停止执行。
光标图标
使用noCursor()隐藏鼠标光标,使用cursor()设置不同的图标
运行noCursor()隐藏鼠标光标,使用cursor()显示图标
cursor()参数选项:ARROW, CROSS, HAND, MOVE, TEXT, and WAIT
图像操作
1 | img=loadImage("test.jpg") |
1 | createImage(200,200,RGB) |
1 | image(img,0,0,640,320) |
1 | tint(light,alpha) |
像素操作
1 | loadPixels() |
1 | constrain(r,0,255)#将范围限制在0-255 |
字符串
1 | createFont("Arial",20,True) |
2D变换
1 | pushMatrix() #保存当前坐标参数 |
每次执行draw()函数时,坐标系会恢复到原来的状态,原点位于窗口左上方,不旋转,不缩放。
对于三维,可使用translate,给三个参数,scale类似,三维的旋转可使用rotateX、rotateY和rotateZ
P3D
python版本对P3D支持的不好,使用Java版会好一些
灯光
默认灯光直接使用light,环境光使用ambientLight,定向光使用directiveLight,聚光SpotLight,点光pointLight
在命令行使用processing
安装Java8(实测更高版本的也能用),配置环境变量
1 | java -jar processing-py.jar your-sketch.py |
其他参数
-Xms 初始堆大小 -Xmx最大堆大小
1 | java -Xms256m -Xmx1024m -jar processing-py.jar |
当导入文件时,先从data目录下查找,如果找不到,再从同目录下查找。
导入库
将库文件放到草图文件相同目录的“libraries”文件夹下,使用add_library("module")
。
杂记
processing.py基于Jython实现,Jython实现的是python2.7,有些功能和python3不兼容。