python – 返回3D scipy.spatial.Delaunay的曲面三角形
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 返回3D scipy.spatial.Delaunay的曲面三角形,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1989字,纯文字阅读大概需要3分钟。
内容图文
![python – 返回3D scipy.spatial.Delaunay的曲面三角形](/upload/InfoBanner/zyjiaocheng/701/f98d34a5c11a41e298339ed35649574b.jpg)
我有这个问题.我尝试通过scipy.spatial.Delaunay对点云进行三角测量.我用了:
tri = Delaunay(points) # points: np.array() of 3d points
indices = tri.simplices
vertices = points[indices]
但是,这段代码返回了四面体.怎么可能只返回表面三角形?
谢谢
解决方法:
要使其像代码形式一样工作,您必须将曲面参数化为2D.例如,在球(r,theta,psi)的情况下,半径是恒定的(将其丢弃),并且点由(θ,psi)给出,即2D.
Scipy Delaunay是N维三角剖分,因此如果你给3D点,它会返回3D对象.给它2D点并返回2D对象.
下面是我用于为openSCAD创建多面体的脚本. U和V是我的参数化(x和y),这些是我给Delaunay的坐标.请注意,现在“Delaunay三角剖分属性”仅适用于u,v坐标(角度在uv-spatial中最大化而不是xyz -space等).
这个例子是从http://matplotlib.org/1.3.1/mpl_toolkits/mplot3d/tutorial.html开始的修改过的副本,最初使用Triangulation函数(最终映射到Delaunay?)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.tri as mtri
from scipy.spatial import Delaunay
# u, v are parameterisation variables
u = np.array([0,0,0.5,1,1])
v = np.array([0,1,0.5,0,1])
x = u
y = v
z = np.array([0,0,1,0,0])
# Triangulate parameter space to determine the triangles
#tri = mtri.Triangulation(u, v)
tri = Delaunay(np.array([u,v]).T)
print 'polyhedron(faces = ['
#for vert in tri.triangles:
for vert in tri.simplices:
print '[%d,%d,%d],' % (vert[0],vert[1],vert[2]),
print '], points = ['
for i in range(x.shape[0]):
print '[%f,%f,%f],' % (x[i], y[i], z[i]),
print ']);'
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
# The triangles in parameter space determine which x, y, z points are
# connected by an edge
#ax.plot_trisurf(x, y, z, triangles=tri.triangles, cmap=plt.cm.Spectral)
ax.plot_trisurf(x, y, z, triangles=tri.simplices, cmap=plt.cm.Spectral)
plt.show()
下面是(稍微更结构化)文本输出:
polyhedron(
faces = [[2,1,0], [3,2,0], [4,2,3], [2,4,1], ],
points = [[0.000000,0.000000,0.000000],
[0.000000,1.000000,0.000000],
[0.500000,0.500000,1.000000],
[1.000000,0.000000,0.000000],
[1.000000,1.000000,0.000000], ]);
内容总结
以上是互联网集市为您收集整理的python – 返回3D scipy.spatial.Delaunay的曲面三角形全部内容,希望文章能够帮你解决python – 返回3D scipy.spatial.Delaunay的曲面三角形所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。