我使用库 PolyK 执行了一些三角测量任务。仅用于比较我的简单多边形。 我有一个带有7个顶点的多边形。但我得到这个库只有9个索引== 3个三角形,我猜想更少。
在下面的代码中,您可以看到我在THREE.js中实现PolyK.js
var pts3 = [];
var ids2 = PolyK.Triangulate(pts3);
for (var k = 0; k < ids2.length; k+=3)
{
geometry.faces.push(new THREE.Face3(ids2[k], ids2[k + 1], ids2[k + 2]));
}
我的点阵:
(带x和y值的7分)
var points = [
158.56000000005588, 336.73000000044703,
158.60000000009313, 335.21999999973923,
161.589999999851, 335.3099999995902,
161.7799999997951, 329.820000000298,
155.52000000001863, 329.62000000011176,
155.29999999981374, 336.62999999988824,
158.56000000005588, 336.73000000044703
];
这是当前的结果:
这是预期的结果:
源代码中PolyK的使用有什么问题吗?
答案 0 :(得分:0)
这些是要点:
4 _______________ 3
| |
| |
| |
| |
| |
| _______|
| |1 2
|_______|
5 0/6
我在a fiddle here进行了测试,它似乎像你说的那样工作。 我得到结果:
[5, 6, 0, 0, 1, 2, 0, 2, 3]
这与您在图纸中显示的结果不一致。
起初我认为删除重复点(0与6相同)可以解决问题,但这也会导致错误的结果。
同时检查this triangulation adapter/library on GitHub that I made for three.js。它可能对你有用。