问题标签 [delaunay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
542 浏览

c++ - 我怎样才能对简单多边形进行delaunay三角剖分并找到cgal中任何三角形的邻居

我如何使用 CGAl、多边形的 Delaunay 三角剖分(简单的无孔和 cw 顺序)并获取从 Delaunay 三角剖分生成的任何三角形的三角形邻居列表?

0 投票
1 回答
831 浏览

c++ - 如何在约束delaunay三角剖分中获得三角形的顶点?

我使用 cgal 编写了一个程序,如下所示:

我想在 for 循环的每次迭代中获取指向cdt.finite_faces_begin()三角形的三角形的顶点。t

例如在循环的第一次迭代中,我得到第一个三角形的顶点,在循环的第二次迭代中,我得到第一个+第二个三角形的顶点,在第三个中,我得到第一个+第二个+第三个三角形的顶点三角形等等。我怎样才能做到这一点?

0 投票
2 回答
482 浏览

mesh - 如何获得一个具有自适应点分布的非流形网格

我试图从一个点云中获得一个三角形网格。网格预计是多方面的,三角形形状良好或等边,点的分布在曲率方面是自适应的。本网站提供了有价值的信息。

从 3D 点云进行表面重建的鲁棒算法?

从具有 x、y 和 z 坐标的点生成网格

我尝试泊松重建算法,但三角形的形状不是很好。 有很多小三角形

所以我需要提高三角形的质量。我了解到centroidal voronoi tessellation(CVT)可以实现这一点,但我不知道该操作是否会引入非流形顶点和自相交。我希望从你那里得到一些关于它的信息。

以下帖子中的网格看起来相当不错。

如何定期用点填充多边形?

使用 Delaunay 细化算法。delaunay细化算法可以直接应用于三角形网格吗?我是否需要先对网格的点云进行delaunay三角剖分,然后使用delaunay三角剖分的信息进行delaunay细化?

谢谢。问候慢跑

0 投票
1 回答
4733 浏览

image - 使用 Delaunay 三角剖分进行图像变形

我正在开发一种简单的算法来使用关键点和 delaunay 三角剖分来变形两个图像。这个想法应该很简单:

  • 选择源代码控制点
  • 选择目的地控制点
  • 获取源帧和目标帧的 delaunay 三角剖分
  • 对于源图像中的每个像素
    • 获取与像素所在的源三角形相关的像素重心坐标
    • 获取与像素所在的目标三角形相关的像素重心坐标
    • 使用关系 Px = w1*v0x + w2*v1x + w3*v2x(y 和目标像素相同)分配 OUT[PdestX,PdestY] = IN[Px,Py]。

但它不起作用 X_X 这是我的 matlab 源代码:

这些是用于获取控制点的实用函数

和这个函数(我在网上找到的),测试一个点是否位于给定的三角形上,并返回 u,v,w 值:

有什么建议吗?再见!

0 投票
1 回答
2942 浏览

python - scipy.spatial 中的凸壳例程给了我原来的一组点

我有一组点,想找到凸包。当我将它们提供给 scipy.spatial(ConvexHull 或 Delaunay)时,我只会得到原始点集。通过构造,情况不应如此。

这是一个腌制的numpy数组的点。我的代码如下:

显然,其中一些点位于凸包内部,应通过 spatial.ConvexHull(points) 或 spatial.Delaunay(points) 移除,如此处给出的 2d 示例中所做的那样

有谁知道我为什么要拿回原来的积分?我可以蛮力找到外部点并仅绘制那些(最终目标是由点近似的外部形状的表面图),但似乎 scipy.spatial 应该能够做到这一点。

0 投票
1 回答
333 浏览

c++ - 如何做一个圆的德劳内三角剖分

有谁知道如何在 C++ 中创建一个圆的 delaunay 三角剖分?我已经有了一个解决方案,但它非常有效,我以 openCV delaunay.c 为例。我想知道是否有人做过类似的事情并且可以给我一个提示。

0 投票
1 回答
5088 浏览

c++ - CGAL - 在 Delaunay 三角剖分后检索顶点索引

我正在计算几千点的 2D delaunay 三角剖分。除了 x 和 y 坐标之外,每个点都有更多与之相关的数据。因此,我想知道是否可以检索每个点的索引,以便我可以在另一个向量中访问我自己的点结构。

目前,当我从 Face_handle 访问顶点时,它返回一个点(即 x,y 坐标) 我如何通过其 ID(索引)而不是 x,y 坐标返回每个顶点?谢谢你。

输出(x,y 坐标):

期望的输出(指数):

0 投票
2 回答
3067 浏览

c++ - C++ 中的 Delaunay 三角剖分

以下步骤假设您从两个点开始 - A 和 B - 并试图确定要用于形成三角形的点 C:

一个。创建一个成员函数,该函数将确定给定点 C 是在由两点 A 和 B 形成的线的左侧还是右侧。提示:为此,取两点 A 和 B 之间的向量与向量的叉积在 A 和 C 之间。由于叉积与两个向量之间角度的正弦成正比,因此对于 0 到 180 度之间的角度(即,如果点 C 位于 A 线的左侧),叉积将是正值到 B)。

湾。创建一个成员函数,该函数将确定给定点是否在由其他三个点形成的圆内(在这种情况下,三个点将是三角形的点,生成的圆将是外接圆)。提示:可以在 Delaunay Triangulation 的 Wikipedia 条目中找到该函数的一个非常优雅的实现。如果您借用此实现,请确保对其进行彻底测试,引用它,并在您的实验室报告中解释它是如何工作的。

C。创建一个成员函数,给定两个点,找到下一个 Delaunay 三角形的点。这个函数可以搜索整个列表(不是最有效的实现,但对于本实验来说已经足够了)并且很可能会调用上面 4a 和 4b 中定义的函数。

d。创建一个递归成员函数 Delaunay(Point A, Point B),它从上面的 4c 调用函数以查找下一个点 C。当找到点 C 时,此函数应将一个新三角形插入三角形向量并更新点列表中的布尔变量。然后,该函数应使用点 A 和 C 递归调用自身,并再次使用点 C 和 B。确保该函数也有两个基本情况;一种是当找到的点 C 已经被使用时,在这种情况下应该添加三角形,但不应该发生递归调用,并且;另一种没有找到点 C 的情况(因为 A 和 B 形成数据集的外边缘)

我已经完成了代码,但似乎在调试过程中不断出现错误,我相信我已经将其范围缩小到读取功能,所以这是我的代码:

//TASK 4a:将确定给定点 C 是在由两点 a 和 b 形成的线的左侧还是右侧

//任务4b:确定给定点是否在由其他三个点组成的圆内

//任务4c:给定两个点,找到下一个德劳内三角形的点

//任务4d:递归成员函数,Delaunay,从上面4c的调用中寻找下一个点C

0 投票
1 回答
2699 浏览

time-complexity - 快速 (O(nlogn)) 约束 Delaunay 三角剖分算法

有谁知道在 O(nlogn) 时间内创建约束 Delaunay 三角剖分的任何算法(如果您知道,请链接到研究论文),以及允许删除和添加不需要重新计算的约束和顶点的任何算法整个 CDT?

0 投票
2 回答
1282 浏览

c++ - 有没有人在 C++ 项目中使用过 Triangle/Triangle++ 库?(德劳内三角剖分)

我正在使用 SFML,我想对一组随机点进行 delaunay 三角剖分。

http://www.cs.cmu.edu/~quake/triangle.html

我正在使用 triangle++,一个 c++ 包装器

http://www.compgeom.com/~piyush/scripts/triangle/

我添加了那些#defines

这个编译,它运行良好,但现在它计算了这些东西,我如何得到顶点之间的边缘?