我想实现一个Maya插件(此问题独立于Maya)以创建3D Voronoi模式,例如
我只知道我必须从点采样开始(我实现了本文描述的自适应泊松采样算法)。
我认为,从这些观点出发,我应该使用Voronoi创建网格的3D线(我尝试使用(Python)scipy.spatial.Voronoi,但结果与我的预期有所不同)。
我想念什么吗?谁能建议我创建此类模式所必须实施的适当管道和算法?
[编辑]以下是是我所得到的处理结果我从scipy.spatial.Voronoi得到这样(的建议了几个例子在这里):
vor = Voronoi(points)
for vpair in vor.ridge_vertices:
for i in range(len(vpair) - 1):
if all(x >= 0 for x in vpair):
v0 = vor.vertices[vpair[i]]
v1 = vor.vertices[vpair[i+1]]
create_line(v0.tolist(), v1.tolist())
感谢您的答复。我将复制我的工作并按照建议发布屏幕。无论如何,这个问题的最终目的不是调试我的代码,而是要了解我在做什么是正确的,还是我之间缺少其他步骤!
—
Jiloc 2015年
根据建议添加了示例!
—
Jiloc 2015年
泊松采样的点是正确的。生成它们的算法是经过完全单元测试的,并且您在屏幕上看到的是在采样点中心以我在调用Voronoi(points)之前通过编程方式创建的球形!我担心我没有遵循正确的路径,或者我以错误的方式处理Voronoi结果
—
Jiloc 2015年
您显示的图像在2d功能上完成了voronoi。
—
joojaa 2015年
@joojaa从示例图像中,我期望2D表面上的Voronoi单元边缘是必需的(给出连接球体表面上的点的线段的集合,而不是3D中给出的平面截面的集合) 。但是,scipy.spatial.Voronoi似乎是为N维空间而不是嵌入其中的曲面设计的。我无法立即看到如何将其用于约束到2D曲面的3D点。
—
trichoplax