用processing在一个正方体中绘制泰森多面体
时间: 2023-09-10 10:11:06 浏览: 60
以下是使用Processing绘制泰森多面体的代码:
```
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.processing.*;
ArrayList<Vec3D> points = new ArrayList<Vec3D>();
TriangleMesh mesh;
ToxiclibsSupport gfx;
void setup() {
size(800, 800, P3D);
noStroke();
background(255);
smooth();
gfx = new ToxiclibsSupport(this);
mesh = new TriangleMesh();
addPoints();
generateDelaunayMesh();
}
void draw() {
background(255);
lights();
translate(width/2, height/2, -200);
rotateY(frameCount * 0.01);
rotateX(frameCount * 0.01);
gfx.mesh(mesh, true);
}
void addPoints() {
float r = 200;
for (int i = 0; i < 1000; i++) {
float x = random(-r, r);
float y = random(-r, r);
float z = random(-r, r);
points.add(new Vec3D(x, y, z));
}
}
void generateDelaunayMesh() {
DelaunayTriangulator delaunay = new DelaunayTriangulator(points);
delaunay.setCutoffRadius(200);
mesh = delaunay.getMesh();
mesh.computeFaceNormals();
mesh.computeVertexNormals();
}
```
在这个代码中,我们使用了Toxiclibs库来生成Delaunay三角网格,并将其绘制到Processing窗口中。我们还添加了一些灯光和旋转来使泰森多面体更加生动。
我们可以通过更改“addPoints()”函数中的点数和半径来调整泰森多面体的复杂度。我们还可以更改生成Delaunay网格的半径来控制三角形的大小。
注意:在运行这个代码之前,你需要先在Processing中安装Toxiclibs库。你可以在Processing菜单栏中选择“Sketch”->“Import Library”->“Add Library”,然后搜索并安装Toxiclibs库。