gpt4 book ai didi

python - 使用 scipy 创建常规的 Delaunay 网格

转载 作者:太空狗 更新时间:2023-10-29 17:34:48 24 4
gpt4 key购买 nike

是否有某种方法可以像 Matlab Delaunay 生成的那样在 2D 中获得更有序的三角剖分?这是 Matlab 的 2D Delaunay 三角剖分的示例。

matlab delaunay

使用这段代码:

xPoints = np.arange(0,11,1)
yPoints = np.arange(0,11,1)
gridPoints = np.array([[x,y] for y in yPoints for x in xPoints])
tri = Delaunay(gridPoints)
plt.triplot(gridPoints[:,0],gridPoints[:,1],tri.simplices.copy())
plt.plot(gridPoints[:,0],gridPoints[:,1],'bo')
plt.title("Triangulation Visualization")

我得到下面的三角剖分:

scipy delaunay

请注意 Matlab 结果中的对角弧线如何具有相同的斜率;但是 scipy 结果中的那些是不同的。由于 Matlab 和 Scipy 都在内部使用 QHull,我认为有一些方法可以模仿 Matlab 结果。

最佳答案

您可以尝试使用 Triangulation 而不是 Delaunay:

import matplotlib.tri as tri

xlen = 10
ylen = 16
xPoints = np.arange(0,xlen+1,1)
yPoints = np.arange(0,ylen+1,1)

gridPoints = np.array([[[x,y] for y in yPoints] for x in xPoints])
a = [[i+j*(ylen+1),(i+1)+j*(ylen+1),i+(j+1)*(ylen+1)] for i in range(ylen) for j in range(xlen)]
triang = tri.Triangulation(gridPoints[:,:,0].flatten(), gridPoints[:,:,1].flatten(),a)

plt.triplot(triang)
plt.plot(gridPoints[:,:,0],gridPoints[:,:,1],'bo')
plt.title("Triangulation Visualization")

enter image description here

关于python - 使用 scipy 创建常规的 Delaunay 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29887022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com