在p5.js中实现Delaunay Triangulation可以使用第三方库d3-delaunay。首先,你需要引入d3-delaunay库,然后按照以下步骤进行操作:
- 在HTML文件中引入p5.js和d3-delaunay库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
<script src="https://d3js.org/d3-delaunay.v2.min.js"></script>
- 在JavaScript文件中创建一个p5.js的sketch:
let points = [];
let delaunay;
function setup() {
createCanvas(400, 400);
// 生成随机点
for (let i = 0; i < 100; i++) {
points.push([random(width), random(height)]);
}
// 创建Delaunay Triangulation对象
delaunay = Delaunay.from(points);
}
function draw() {
background(220);
// 绘制所有点
points.forEach(point => {
stroke(0);
strokeWeight(5);
point(point[0], point[1]);
});
// 绘制三角形边界
stroke(255, 0, 0);
noFill();
for (let i = 0; i < delaunay.triangles.length; i += 3) {
const p1 = points[delaunay.triangles[i]];
const p2 = points[delaunay.triangles[i + 1]];
const p3 = points[delaunay.triangles[i + 2]];
triangle(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
}
}
在上述代码中,我们首先在setup()
函数中生成了100个随机点。接着,使用Delaunay.from()
方法将这些点转换为Delaunay Triangulation对象。在draw()
函数中,我们先绘制所有的点,然后通过遍历delaunay.triangles
数组获取每个三角形的索引,然后使用triangle()
函数绘制三角形。
这样,你就可以在p5.js中实现Delaunay Triangulation了。注意,你可能需要根据自己的需求进行适当的调整和修改。