Processing

Processing:循环

1. 学会一个新单词:iteration.. 2. 循环共有三种:while,do-while和for 3. while()其实就是:你给while一个条件,符合条件的他继续循环尖括号内的内容,不符合条件了,停止,或者干其他事。一个典型的例子: size(100,100); background(40,250,150); smooth(); float w = width ; while (w>0) { stroke(0); fill(13,w+30,50); ellipse(height/2,width/2,w,w); w=w-5; } 4. 有一种循环叫做死循环。。: int x = 0; while (x < 10) { println(x); x = x – 1; }…

Processing:条件式

1. 布尔表达式通常被称为条件式(conditionals)。 2. 条件式链(各种else if保准让你晕头转向): if (boolean expression #1) { // 如果布尔表达式 #1 为真时执行的代码 } else if (boolean expression #2) { // 如果布尔表达式 #2 为真时执行的代码 } else if (boolean expression #n) { // 如果布尔表达式 #n 为真时执行的代码 } else { //…

Processing:变量

1. 申明一个变量:类型+名称,一个变量的名称必须是一个词(不带空格),必须以字母而不是数字开头(虽然可含有数字)。除了下划线外,它的名称不能含有任何标点或特殊符号。 2. 所有初级变量类型 · boolean : 真或假 · char : 一个字母, ‘ a ’ ,‘b ’ ,‘c ’ , 等等. · byte : 一个小的数字, –128 ~ 127 · short : 一个更大的数字, –32768 ~ 32767 · int : 一个大的数字, –2147483648…

Processing:互动

1. setup()里的内容仅执行一次,而后跳到draw(),draw()里的内容无限循环运行,直到你设置它停或手动让其停止。 2. setup()里的内容最先运行,size()应当始终作为setup()里的第一行,因为这是pr的习惯。。 3. mouseX和mouseY是两个关键值,你可以暂时将它们用做目前的变量。用它们代替一些值试试,会有好玩的互动。 4. pmouseX, pmouseY:鼠标的上一个坐标值。 5. 将值放到abs()中将得到它的绝对值(absolute value)。因此,鼠标移动速度的绝对值就是abs( mouseX – pmouseX ) 。 6. mousePressed() :鼠标按下;keyPressed():键盘按键按下。对应的,你不能让这个动作无限循环执行下去,因此,你需要写第三堆代码,例子如下: void setup() { size(200,200); background(255); } // 本例中,draw()内不发生任何事 void draw() { } // 无论何时用户点击鼠标,mousePressed()内的代码被执行 void mousePressed() { stroke(0); fill(175); rectMode(CENTER);…

Processing: Processing

1. 全屏运行Processing:Sketch -> Present,或者shift+鼠标单击run。Present不会改变你萤幕的分辨率,所以如果你想让sketch覆盖整个萤幕,你需将size()设为你萤幕的分辨率。 2. Processing草图文件名不允许空格和连字符,同时,也不能以数字作为开始。 3. 如果代码里有很多错误,pr只会提示你第一个错误,你将之改正后,又继续后边的错误提示。写到这,Shiffman老头这里说了一句颇有哲理的话:因为每次只需要看一个错误,我们的生活因此变得更加简单。 4. Processing现在只有在线参考,而没有离线参考,这点有点不爽,意味着我没网的话就看不了参考了。双击sketch里任意一个关键词,选择Help -> Find in Reference。 5. 导出后,将applet文件夹那一堆传到你的服务器空间里,就可以通过你的域名你在很多pr例网上看到的那个样子。由于这属于网页设计的范畴,这里就不赘述了。

Processing:像素

1. 计算机萤幕左上角坐标为0,0,横向为x、纵向为y轴。 2. 画矩形有三种方式:i. CORNER: rect(左上x, 左上y, 宽, 高);ii. CENTER: rect(中心x, 中心y, 宽, 高);iii. CORNERS: rect(左上x, 左上y, 右下x, 右下y)。画椭圆(ellipse)也是用同样的思路。看起来很难记比较容易混淆,但是只要记住有中心的就是center,出现一个角的坐标值的是corner,出现两个角的坐标值的就是复数,所以是corners。 3. 写ellipseMode的时候我发现processing的代码严格区分大小写,大小写不对狗日不认,完全不认。 4. 边框stroke()和填充fill()要写在被填色物的形状代码之前。背景色background()要写在他们所有之前。要除去边框和填充应当使用noStroke()和noFill()命令。而不要在括号里使用0,记住这里的0不是“没有”的意思,而是代表黑色。另外,注意不要同时使用noStroke()和noFill(),因为这样将什么也不会出现。 5. 从教材里的两个例子我发现一点,如果不指定rectMode的话,默认的模式是CORNER–rect(左上x, 左上y, 宽, 高)。而ellipse默认的则是CENTER–ellipse(中心x, 中心y, 宽, 高)。 6. Processing按由上往下、承上启下的方式执行代码。所以很多属性,如果是之前写过的,你就没必要在之后再重写了。 7. 如果你在点击run后,修改了代码想要再看效果,不用关闭之前运行的窗口,或者点击stop后再run,直接点run即可。 8. fill()的第四位引数代表它的透明度(前三位为RGB数值),和颜色一样,值255代表100%不透明,191则代表75%不透明,这个值越小,则透明度越高。 9. 原来颜色除了RGB,还有个HSB(色调、饱和度、亮度)可供表述。。。colorMode()可以在这两者间切换,并将它们的范围用第二引数的方式重新设定。