【问题标题】:How to get index of triangles from poly2tri如何从poly2tri获取三角形索引
【发布时间】:2016-09-06 14:18:54
【问题描述】:

我将根据我在三角剖分库 poly2tri 中创建的三角形为我的网格几何体创建面 我只有一个逆时针方向的简单多边形。 此外,我没有洞,斯坦纳只点了一个轮廓!

 var swctx = new poly2tri.SweepContext(contour);
         swctx.triangulate();
         var triangles = swctx.getTriangles();

         triangles.forEach(function(t) {
                 t.getPoints().forEach(function (p) {
                     console.log(p.x, p.y);
                 })
         })

现在已经可以使用了。 结果: triangles

但下一步将是为我的 Mesh.geometry 创建面。为了创建 Face3 几何,我需要顶点的索引。

类似这样的:

for (var i = 0; i < triangles.length; i++) {
             geometry.faces.push(new THREE.Face3(triangles[i][0],triangles[i][1],triangles[i][2]));
         }

如何从我的三角形中获取索引?

【问题讨论】:

  • 如果你想使用不同的三角测量算法,你可以使用我创建的three.js triangulation adapter。只需两行代码,您就可以无缝连接例如 poly2triearcut
  • 好的,我会试试的。你有一个我可以看到源代码的例子吗?我包括了 triangulation.js,但它写到 Triangulation 是一个未解析的变量。我必须在主脚本或标题中设置吗?
  • 检查示例页面here

标签: three.js mesh triangulation


【解决方案1】:

我相信您正在寻找 getPoint()。根据上面代码示例的设置:

var triangles = swctx.getTriangles();
for ( var i = 0; i < triangles.length; i++ ) {
    console.log(triangles[i].getPoint(0).x + ", " + triangles[i].getPoint(0).y);
    console.log(triangles[i].getPoint(1).x + ", " + triangles[i].getPoint(1).y);
    console.log(triangles[i].getPoint(2).x + ", " + triangles[i].getPoint(2).y);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2014-03-18
    • 2016-06-12
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多