civ*_*ain 2 javascript delaunay convex-hull d3.js
如图所示,您可以使用它来过滤 delaunay 三角剖分并获得完美的限制。
谁能解释一下magik算法吗?
除了经典的Delaunay 三角剖分算法之外,实际上并没有太多魔力,该算法d3.geom.delaunay()在 D3 中作为函数实现。
在您链接到的示例中,alpha 形状被实现为修改后的 Delaunay 三角剖分,这样一来,任何至少一侧大于alpha(在示例中具有 value 50)的三角形都会从三角剖分中删除。
这就是为什么结果看起来像这样:(原始顶点、Delaunay 三角剖分和 Alpha 形状)

d3.geom.delaunay()返回三角形数组,因此这段代码:
mesh = d3.geom.delaunay(offset(vertices,600,0)).filter(function(t) {
return dsq(t[0],t[1]) < asq && dsq(t[0],t[2]) < asq && dsq(t[1],t[2]) < asq;
});
Run Code Online (Sandbox Code Playgroud)
与事实 一起asq,alpha和dsq()是计算平面上两点之间距离平方的函数,导致删除至少一侧大于 的任何三角形alpha,从而产生上图中的第三个图像。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |