一.库
1.使用库的方式
从菜单栏(Sketch Menu)选择导入库(import labrary),选择一个我们要添加或者成需要用到的库。
例如:当我们需要添加PDF扩展库时,需要将下面这段代码添加到草图中。
import processing.pdf.*;
除了processing里的库(这些被称为核心库),还有超过100非官方的库在processing网站上。
在通过菜单栏导入非官方的库时,我们需要从各自的网站下载文件并且存放到本地库文件夹中。我们本地的库(libraries)文件来位于草稿本(Sketchbook)里。我们可以通过打开Processing的偏好设置(Preferences)找到本地草稿本(Sketchbook)的路径,库管理系统(LibraryManager)同样可以进行更新和移除库。
二.导出PDF案例
案例代码如下
import processing.pdf.*;
import java.util.Calendar;
boolean savePDF=false;
int segmentCount = 360;
int radius = 200;
void setup(){
size(800,800);
}
void draw(){
if(savePDF) beginRecord(PDF,timestamp()+".pdf");//保存PDF
noStroke();
colorMode(HSB,360,width,height);
background(360);
float angleStep =360/segmentCount;
beginShape(TRIANGLE_FAN);
vertex(width/2,height/2);
for(float angle = 0;angle<=360;angle+=angleStep){
float vx = width/2+cos(radians(angle))*radius;
float vy = width/2+sin(radians(angle))*radius;
vertex(vx,vy);
fill(angle,mouseX,mouseY);
}
endShape();
if(savePDF){
savePDF=false;
endRecord();
}
}
void keyReleased(){
if(key=='s'||key=='S')saveFrame(timestamp()+"_##.png");//保存PNG
if(key=='p'||key=='P')savePDF=true;
switch(key){
case'1':
segmentCount=360;
break;
case'2':
segmentCount=45;
break;
case'3':
segmentCount=24;
break;
case'4':
segmentCount=12;
break;
case'5':
segmentCount=6;
break;
}
}
String timestamp(){
Calendar now=Calendar.getInstance();
return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS",now);
}
保存并运行如图1
图1
注意:案例中按下大写P或者小写p保存PNG,如果按下大写S或者小写s可以保存PDF。圆盘颜色、明亮度、透明度跟随鼠标的变化而变化。另外按下数字1~5圆盘角度会有不同的惊喜,大家可以复制粘贴运行玩玩。