【发布时间】:2019-02-16 14:11:32
【问题描述】:
我已经有一个由scipy.spatial.Delaunay() 对象三角剖分的矩形。我设法拉伸和弯曲它,使它看起来像一个沿着一条线切割的环。下面是一些代码来制作具有相同拓扑的东西:
from scipy.spatial import Delaunay
NR = 22
NTheta = 36
Rin = 1
Rout = 3
alphaFactor = 33/64
alpha = np.pi/alphaFactor # opening angle of wedge
u=np.linspace(pi/2, pi/2 + alpha, NTheta)
v=np.linspace(Rin, Rout, NR)
u,v=np.meshgrid(u,v)
u=u.flatten()
v=v.flatten()
#evaluate the parameterization at the flattened u and v
x=v*np.cos(u)
y=v*np.sin(u)
#define 2D points, as input data for the Delaunay triangulation of U
points2D=np.vstack([u,v]).T
xy0 = np.vstack([x,y]).T
triLattice = Delaunay(points2D) #triangulate the rectangle U
triSimplices = triLattice.simplices
plt.figure()
plt.triplot(x, y, triSimplices, linewidth=0.5)
从这个拓扑开始,我现在想把两个开放的边连接起来,做一个封闭的环(改变拓扑,也就是说)。如何手动将新三角形添加到现有三角剖分?
【问题讨论】:
-
之后你想如何使用三角测量?它必须是有效的
scipy.spatial.qhull.Delaunay对象(例如使用find_simplex方法),还是拥有三角形列表就足够了? -
您能分享您的代码或精简版吗?这样做的一种方法是更改节点引用,但如果您的代码不方便,就很难看到存储在哪里
-
@xdze2 感谢您提出这个问题。它不需要是有效的
Delaunay对象。我只需要修改后的单纯形列表。
标签: python scipy computational-geometry scipy-spatial