Processing 015 beginShape 不同类型
1 beginShape()
translate(300, 200);
beginShape();
vertex(0, 0);
vertex(100, 0);
vertex(100, 100);
vertex(0, 100);
endShape();
将相邻两个点依次相连, 不封口
2 endShape(CLOSE)
void setup(){
size(680, 480);
translate(300, 200);
beginShape();
vertex(0, 0);
vertex(100, 0);
vertex(100, 100);
vertex(0, 100);
endShape(CLOSE);
}
此时图形自动封闭
3. beginShape(POINTS)
按照点画,不连线
void setup(){
size(680, 480);
translate(300, 200);
beginShape(POINTS);
vertex(0, 0);
vertex(100, 0);
vertex(100, 100);
vertex(0, 100);
endShape();
}
什么也看不到
3. beginShape(LINES)
void setup(){
size(680, 480);
translate(300, 200);
beginShape(LINES);
vertex(0, 0);
vertex(100, 0);
vertex(100, 100);
vertex(0, 100);
endShape();
}
4. beginShape(QUADS)
void setup(){
size(680, 480);
translate(300, 100);
beginShape(QUADS);
vertex(0, 0);
vertex(100, 0);
vertex(100, 100);
vertex(0, 100);
vertex(0, 200);
vertex(100, 200);
vertex(100, 300);
vertex(0, 300);
endShape();
}
每四个点一个图形
5 beginShape(QUAD_STRIP);
void setup(){
size(680, 480);
translate(300, 100);
beginShape(QUAD_STRIP);
vertex(0, 0);
vertex(100, 0);
vertex(0, 100);
vertex(100, 100);
vertex(0, 200);
vertex(100, 200);
vertex(0, 300);
vertex(100, 300);
endShape();
}
这种模式适合连续操作,例如用一系列的四边形形成曲面
6 beginShape(TRIANGLES)
void setup(){
size(680, 480);
translate(300, 100);
beginShape(TRIANGLES);
vertex(0, 0);
vertex(100, 0);
vertex(0, 100);
vertex(100, 100);
vertex(0, 200);
vertex(100, 200);
vertex(0, 300);
vertex(100, 300);
vertex(0, 400);
endShape();
}
类似的每三个点一个三角形
7 beginShape(TRIANGLE_STRIP)
void setup(){
size(680, 480);
translate(300, 100);
beginShape(TRIANGLE_STRIP);
vertex(0, 0);
vertex(100, 0);
vertex(0, 100);
vertex(100, 100);
vertex(0, 200);
vertex(100, 200);
vertex(0, 300);
vertex(100, 300);
vertex(0, 400);
endShape();
}
同样的连续操作,每新增一个点和之前的两个点形成三角形
8 beginShape(TRIANGLE_FAN)
void setup(){
size(680, 480);
beginShape(TRIANGLE_FAN);
int x = 300;
int y = 300;
vertex(x, y);
for(float theta = 0; theta <= 2.001 * PI; theta += PI / 10){
float Ax = x + 100 * cos(theta);
float Ay = y + 100 * sin(theta);
println(degrees(theta) , Ax, Ay);
vertex(Ax, Ay);
}
endShape();
}
这是一种旋转的连续画三角形的形式