首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scipy中创建规则Delaunay网格

在scipy中创建规则Delaunay网格
EN

Stack Overflow用户
提问于 2015-04-27 12:06:16
回答 1查看 1.8K关注 0票数 15

有没有什么方法可以像Matlab Delaunay那样在2D中得到更有序的三角剖分?下面是Matlab的2D Delaunay三角剖分的一个示例。

使用以下代码:

代码语言:javascript
复制
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")

我得到的三角剖分如下:

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

EN

回答 1

Stack Overflow用户

发布于 2015-06-19 03:52:09

你可以尝试三角剖分而不是Delaunay:

代码语言:javascript
复制
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")

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29887022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档