Processing 015 beginShape 不同类型

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();
}

这是一种旋转的连续画三角形的形式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值