本文利用Processing完成一个3D随机渲染案例。由于最终动画效果像大雁群徘徊飞舞,我为其取名“雁群实验”。 为了简化说明,我们先用一个正方体旋转做说明,代码如下:
TIM截图20181011151543.jpg
float angle=0;
void setup() {
size(500, 500, P3D);
smooth();
}
void draw() {
background(100);
translate(width/2, height/2, 0);
rotateY(angle/6);
rotateX(angle/6);
angle+=0.05;
noFill();
box(200, 200, 200);
}
效果如下:
5.gif
在上面案例中正方体的框架作为坐标范围,填充圆形(就是我们“大雁”),最终代码如下:
float angle=0;
void setup() {
size(500, 500, P3D);
smooth();
}
void draw() {
background(100);
translate(width/2, height/2, 0);
rotateY(angle/6);
rotateX(angle/6);
angle+=0.05;
noFill();
box(200, 200, 200);
translate(0, 0, -100);
for (int i=0; i<=1000; i++) {
drawCircle(10, random(-100, 100), random(-100, 100));
}
}
void drawCircle(int r, float x, float y) {
translate(0, 0, 0.2);
fill(random(255));
ellipse(x, y, r, r);
}
效果如下:
6.gif
注释掉辅助边框,效果如下:
7.gif
换个颜色,效果如下:
9.gif
10.gif