Processing 绘制 3D 图形

2025-11-30 21:00:03

1、Processing 中的 3D 图形库文件

要使用 Processing 编程来绘制 3D 图形,但是在绘制之前,必须先加载 3D 库文件

使用语句:import processing.opengl.*;

加载库文件之后,就可以通过命令来创建 3D 图形,就是在原有的 x y 轴上多加一个 Z 轴,如下图所示效果

代码例如:

size(800, 600, P3D);

size(800, 600, OPENGL);

Processing 绘制 3D 图形

2、绘制第一个 3D 图形

输入代码:

import processing.opengl.*;

void setup() {

size(440, 220, OPENGL);

noStroke();

fill(255, 190);

}

void draw() {

background(0);

translate(width/2, height/2, 0);

int dim = 18;

for (int i = -height/2; i < height/2; i += dim*1.2) {

for (int j = -height/2; j < height/2; j += dim*1.2) {

beginShape();

vertex(i, j, 0);

vertex(i+dim, j, 0);

vertex(i+dim, j+dim, -dim);

vertex(i, j+dim, -dim);

endShape();

}

}

}

Processing 绘制 3D 图形

3、移动你的 3D 模型

要移动 3D 模型,只需加两个改变位置的语句:

rotateX(mouseX / 200.0);

rotateY(mouseY / 100.0);

Processing 绘制 3D 图形

Processing 绘制 3D 图形

4、改变 3D 图形的颜色

输入代码:

import processing.opengl.*;

void setup() {

size(420, 220, OPENGL);

noStroke();

fill(255);

}

void draw() {

//lights();

//ambientLight(102, 102, 102);

//directionalLight(255, 255, 255, -1, 0, 0);

pointLight(255, 255, 255, mouseX, 110, 50);

//spotLight(255, 255, 255, mouseX, 0, 200, 0, 0, -1,  PI, 2);

rotateY(PI/24);

background(0);

translate(width/2, height/2, -20);

int dim = 18;

for (int i = -height/2; i < height/2; i += dim*1.4) {

for (int j = -height/2; j < height/2; j += dim*1.4) {

pushMatrix();

translate(i, j, -j);

box(dim, dim, dim);

popMatrix();

}

}

}

Processing 绘制 3D 图形

5、Processing 中 camera() 的用法

输入代码:

import processing.opengl.*;

void setup() {

size(420, 220, OPENGL);

noStroke();

}

void draw() {

lights();

background(0);

float camZ = (height/2.0) / tan(PI*60.0 / 360.0);

camera(mouseX, mouseY, camZ,

width/2.0, height/2.0, 0,

0, 1, 0);

translate(width/2, height/2, -20);

int dim = 18;

for (int i = -height/2; i < height/2; i += dim*1.4) {

for (int j = -height/2; j < height/2; j += dim*1.4) {

pushMatrix();

translate(i, j, -j);

box(dim, dim, dim);

popMatrix();

}

}

}

程序中让 camera()  跟随鼠标的位置而改变

Processing 绘制 3D 图形

6、将 Processing 创建的图形保存为图片

输入代码:

float x = 0;

void setup() {

size(720, 480);

smooth();

noFill();

strokeCap(SQUARE);

frameRate(30);

}

void draw() {

background(204);

translate(x, 0);

for (int y = 40; y < 280; y += 20) {

line(-260, y, 0, y + 200);

line(0, y + 200, 260, y);

}

if (frameCount < 2) {

saveFrame("frames/SaveExample.png");

} else {

exit();

}

x += 2.5;

}

这里保存图片的格式可以是 .png / .jpg / .tif

Processing 绘制 3D 图形

7、将 Processing 项目保存为 PDF 格式

输入代码:

import processing.pdf.*;

void setup() {

size(600, 800, PDF, "Ex-11-5.pdf");

noFill();

strokeCap(SQUARE);

}

void draw() {

background(255);

for (int y = 100; y < height - 300; y+=20) {

float r = random(0, 102);

strokeWeight(r / 10);

beginShape();

vertex(100, y);

vertex(width/2, y + 200);

vertex(width-100, y);

endShape();

}

exit();

}

Processing 绘制 3D 图形

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢