Processing学习笔记——第二课
- pushMatrix入栈,popMatrix出栈,限制矩阵力量的专用结界
- Rotate()旋转
- 声明一个变量,放在最上面,不在任何花括号内,则属于一个全局变量,哪都能使用
- 在draw中使变量的每一帧都发生变化,例如:a=a+1
- 新值=当前值在速度(步幅)作用下的位置=当前值+速度
- 速度=速度+加速度(加速度=0,速度恒定,为正,速度越来越快,为负责越来越慢)
- If语句——条件判断,根据条件进行行动
(注:条件判断中,a=b应该写成a==b,一个=是赋值,两个才是逻辑语言中的等于)
If(条件){行动}
- 变量名区分大小写,调用变量是,名字一定要和声明时的一模一样
- mousePressed()读取鼠标点击状态的函数
- Else——用于if语句中,在条件之外的情况给出另外的行动方案
- For语句——迭代,简单理解是简化重复,机械性劳动(代码),当然用处可不止这么多,
For(条件){行动}
For进行一种循环操作,draw某种意义上也算是一种循环操作,但是两者之间的区别还是多看多写自己体会最好
- 变量作为函数中的参数使用
- 递归
- 一个重要的内容,如何将processing制作的图像转换成矢量图存储
在file工具栏里选择example——libraries——PDF Export——MousePress
这个MousePress样例中提供了一套点击鼠标将绘制的图像储存为pdf矢量图的代码
如果储存的时候和processing生成的图像不一样那就需要调整一下原来的代码,把setup里的内容能写到draw里就写draw里,具体原因比较复杂,说了我也不懂,哈哈
这样子保存的pdf图片,都是矢量的,也就是说可以放到AI里玩弄于股掌之间~
令人异常兴奋!
总结一下这节课讲了哪些内容,还是拿《processing语言权威指南》来当参考
变换一;平移与矩阵
变换二:旋转与缩放(旋转部分)
数据一:变量
结构二:连续运行
控制一:判断
控制二:重复
输入一:鼠标一(mousePreesed部分)
还有就是一些书本与官方没有记载的个人经验了
附带几张小作品与代码(带点击鼠标保存为pdf功能的,该代码为第一张图的代码,但是四张图其实是源于一个代码,主要利用tweak模式进行探索,开发出新图形,小小代码,其乐无穷~)
import processing.pdf.*;
boolean saveOneFrame = false;
//float a;
void setup() {
size(1366,768);
frameRate(10);
smooth(6);
}
void draw() {
if(saveOneFrame == true) {
beginRecord(PDF, “recS100.pdf”);
}
background(0);
noFill();
strokeWeight(0.10);
stroke(255);
rectMode(CENTER);
//a=a+1;
for (float i=-177; i<=990; i=i+0.1) {
rotate(radians(0.111));
pushMatrix();
translate(width/2, height/2);
rotate(radians(0.00*i));
//fill(0,100);
stroke(-3*i,39*i,23*i,160);
rect(0, 0, i*10, i*10);
//ellipse(0,0,i*10,i*10);
popMatrix();
}
if(saveOneFrame == true) {
endRecord();
saveOneFrame = false;
}
}
void mousePressed() {
saveOneFrame = true;
}
- 本文固定链接: http://iprocessing.cn/2017/10/24/p5学习笔记(2)/
- 转载请注明: DurianBomb 于 Processing编程艺术 发表