草庐IT

Delaunay图

全部标签

python - 使用 scipy.spatial.Delaunay 代替 matplotlib.tri.Triangulation 的内置版本

似乎matplotlib.tri.Triangulation使用了一个有缺陷且可能不正确的Delaunay三角剖分实现,该三角剖分将被qHull取代.我正在尝试使用mpl_toolkits.mplot3d.plot_trisurf()绘制trisurf并遇到一堆无用的异常(IndexError和主要是KeyError,没有指出到底出了什么问题)。因为scipy.spatial.Delaunay已经使用了qHull,我想知道是否有办法构建一个matplotlib.tri.Triangulation对象以与一起使用mpl_toolkits.mplot3d.plot_trisurf()使用s

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

是否有某种方法可以像MatlabDelaunay生成的那样在2D中获得更有序的三角剖分?这是Matlab的2DDelaunay三角剖分的示例。使用这段代码:xPoints=np.arange(0,11,1)yPoints=np.arange(0,11,1)gridPoints=np.array([[x,y]foryinyPointsforxinxPoints])tri=Delaunay(gridPoints)plt.triplot(gridPoints[:,0],gridPoints[:,1],tri.simplices.copy())plt.plot(gridPoints[:,0],

Delaunay三角网生成算法

目录一、分而治之算法二、三角网生长算法三、逐点插入算法四、约束Delaunay三角网1、方法一1、原始点云2、构网结果1、方法二1、原始点云2、普通Delaunay3、约束Delaunay  Delaunay三角剖分分为直接三角剖分和间接三角剖分。间接三角剖分首先计算为Voronoi图,然后由Voronoi图产生Delaunay三角网。这种方法的算法复杂、内存开销大、效率低,现今很少使用。直接Delaunay三角剖分是利用离散点按照空外接圆或者最大最小内角性质,直接生成Delaunay三角网,是目前基于离散点三角剖分的主流算法。  Delaunay三角剖分分成三类:分而治之算法、三角网增长算法

python - 使用python对3D中的2D表面点进行Delaunay三角剖分?

我有一组3D点。这些点以恒定水平采样(z=0,1,...,7)。图片应该清楚:这些点位于形状为(N,3)的numpyndarray中,称为X。上面的图是使用以下方法创建的:importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3DX=load('points.npy')fig=plt.figure()ax=fig.gca(projection='3d')ax.plot_wireframe(X[:,0],X[:,1],X[:,2])ax.scatter(X[:,0],X[:,1],X[:,2])plt.draw()我想

python - 使用python对3D中的2D表面点进行Delaunay三角剖分?

我有一组3D点。这些点以恒定水平采样(z=0,1,...,7)。图片应该清楚:这些点位于形状为(N,3)的numpyndarray中,称为X。上面的图是使用以下方法创建的:importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3DX=load('points.npy')fig=plt.figure()ax=fig.gca(projection='3d')ax.plot_wireframe(X[:,0],X[:,1],X[:,2])ax.scatter(X[:,0],X[:,1],X[:,2])plt.draw()我想

PCL 逐点插入法构建Delaunay三角网(C++详细过程版)

目录一、逐点插入算法二、代码实现三、结果展示四、测试数据  Delaunay三角剖分分为直接三角剖分和间接三角剖分。间接三角剖分首先计算为Voronoi图,然后由Voronoi图产生Delaunay三角网。这种方法的算法复杂、内存开销大、效率低,现今很少使用。直接Delaunay三角剖分是利用离散点按照空外接圆或者最大最小内角性质,直接生成Delaunay三角网,是目前基于离散点三角剖分的主流算法。  Delaunay三角剖分分成三类:分而治之算法、三角网增长算法和逐点插入算法。一、逐点插入算法  逐点插入算法的思想最早由Lawson(1977)提出,随后Lee和Schachter(1980)

c++ - Delaunay 三角剖分 opencv c++

多亏了这段代码,我用openCv做了一个delaunay三角剖分:examplecode(特别是draw_subdiv)。但是,当我想显示三角剖分时,我得到了不属于三角剖分的网格和线。这些线是由于三角剖分算法开始工作时考虑了“无穷大”处的三角形。你能解释一下如何只将网格绘制到凸包中吗(没有这条线)?显示功能:voiddraw_subdiv(Mat&img,Subdiv2D&subdiv,Scalardelaunay_color){vectortriangleList;subdiv.getTriangleList(triangleList);vectorpt(3);for(size_ti

java - 在 Delaunay 三角化曲面中定位包含任意点的三角形

我正在寻找基于Delaunay三角剖分的不规则采样函数z(x,y)的线性插值。假设我有一座山,我已经为其获得了Delaunay三角剖分:我知道每个三角形顶点(样本)的高度z。我想要任意点(x,y)的高度z。如何判断哪个三角形包含点(x,y)?一旦我知道了这一点,我想在三角形的三个顶点之间进行插值是相当简单的。您知道现成的实现方式吗?也许还包括插值位?我确信一定有一个开源的实现。我对Java(源代码或JAR)特别感兴趣,但任何VB风格或其他语言也可能有用。 最佳答案 可以通过walkingthroughthetriangulation

python - 返回 3D scipy.spatial.Delaunay 的表面三角形

我有这个问题。我尝试通过scipy.spatial.Delaunay对点云进行三角测量。我用过:tri=Delaunay(points)#points:np.array()of3dpointsindices=tri.simplicesvertices=points[indices]但是,这段代码返回四面体。怎么可能只返回表面的三角形?谢谢 最佳答案 要使其以代码形式工作,您必须将表面参数化为二维。例如,在球(r,theta,psi)的情况下,半径是常数(将其删除)并且点由二维的(theta,psi)给出。ScipyDelaunay是

python - 如何使用 scipy.spatial.Delaunay 在 delaunay 三角剖分中找到给定点的所有邻居?

我一直在寻找这个问题的答案,但找不到任何有用的东西。我正在使用python科学计算堆栈(scipy、numpy、matplotlib)并且我有一组二维点,为此我使用scipy.spatial.Delaunay计算Delaunaytraingulation(wiki)。我需要编写一个函数,给定任何点a,将返回所有其他点,这些点是a也是a的任何单纯形(即三角形)的顶点的顶点(三角剖分中a的邻居)。但是,scipy.spatial.Delaunay(here)的文档非常糟糕,我无法终生理解单纯形是如何指定的,否则我会着手这样做.即使只是解释Delaunay输出中的neighbors、vert