当前位置: 首页 > 知识库问答 >
问题:

无边Delaunay三角剖分中的矩形约束

金阳华
2023-03-14

我正在使用一个三角剖分库来计算一组矩形在某个大边界内的约束Delaunay三角剖分。该算法返回所有边,但也在定义约束的矩形内部添加边。

我希望能够创建一个没有任何约束矩形内的边的图(当然,大边界除外),但在三角剖分中删除这些边至少需要超过O(nlog(n))的时间,这对我需要的是不好的。

我想问的是,有没有什么快速的方法来得到一个CDT来防止多边形中出现边缘?我希望矩形没有边,但我不知道如何快速做到这一点。

如果这有所帮助,我使用的库是Marcello Kallmann的TriPath,它是用C++编写的(http://graphics.ucmerced.edu/software/TriPath/)。我的应用程序是Java的,我使用的是JNI。

编辑:根据要求,这里有一些图像来帮助你将我试图描述的东西形象化。这个CDT是用作为约束的黑线构建的。如您所见,每个受约束的边都是矩形的一部分。蓝线是无约束的Delaunay边。我试图从黑色约束矩形中移除任何蓝色无约束Delaunay边。

共有1个答案

戎劲
2023-03-14

如果受约束的矩形不能相互重叠或包含,我建议在每个原始矩形内放置一个稍微小一点的矩形。内部矩形和原始矩形之间的间隙应该足够小,以至于在不与较小的矩形相交的情况下,任何无约束的边缘都可能适合于原始矩形。然后,在三角剖分完成后,删除与那些较小矩形的任何顶点相邻的每条边。这样,你就可以在O(1)时间内找出一条边是否应该被删除,所以整个过程需要O(E)。

选择足够小的间隙的一种方法是在没有较小矩形的情况下评估三角剖分,找到最小长度的边,并将该长度的1/3作为间隙。

 类似资料:
  • 我必须为学校作业实现多边形三角测量算法。我选择遵循《计算几何:算法与应用》一书中描述的算法。 输入是存储为双连通边列表的多边形。第一步是将多边形分割成单调的部分。为了做到这一点,有必要执行线扫描,并根据每个顶点的类型对其进行处理。根据作者的说法,顶点类型描述如下: 我们在P-图中区分了五种类型的顶点,见图3.3。其中四种类型是旋转顶点:开始顶点、分割顶点、结束顶点和合并顶点。它们的定义如下。如果一

  • 问题内容: 我在新scipy中运行scipy.spatial.Delaunay的3D中有大约50,000个数据点(我使用的是0.10),这给了我一个非常有用的三角测量。 基于:http : //zh.wikipedia.org/wiki/Delaunay_triangulation(“与Voronoi图的关系”部分) …我想知道是否有一种简单的方法可以得到三角剖分的“对偶图”,即Voronoi T

  • 我试图使用众所周知的2遍扫线算法实现多边形三角剖分,该算法在第一遍扫线中将多边形细分为单调子分量,然后在第二遍对这些单调分量进行三角剖分。我目前的实现适用于一般情况,但我一辈子都想不出如何调整它来处理包含多个重合边缘段的输入(从左到右扫描时具有相等的x坐标或从右到左扫描时具有相等的y坐标的段)。 编辑:我刚意识到我的框架这个问题的方式使它相当长和冗长,所以这里有一个快速的TL;Dr;对于任何了解多

  • 我想用3D Delaunay三角剖分表示一个曲面。顶点必须是我的原始输入数据,来自城市区域的激光雷达点云。因此,曲面必须调整/适应输入信息。 实际上,我需要做的是: 我有一个来自市区的3D点云(x,y,z) 我想知道我需要哪个功能。我看到了“3D表面网格生成”、“3D Delaunay三角测量”、“从点集进行表面重建”、“3D网格生成”和“3D阿尔法形状”。但是我不确定哪一个更适合我的工作/需要。

  • 如何使三角形的边框颜色不同于其他形状?如果我改变笔画的颜色,它有点起作用,好吧,我有两个不同颜色的边,没有第三个边框。我该如何改正呢?

  • 本文向大家介绍python 打印直角三角形,等边三角形,菱形,正方形的代码,包括了python 打印直角三角形,等边三角形,菱形,正方形的代码的使用技巧和注意事项,需要的朋友参考一下 三角形 等腰直角三角形1 2.7 python:打印直角三角形 coding=utf-8 方式一 方式二 #打印实心等边三角形 #打印菱形 #实心正方形 #空心正方形 知识点说明: python ,end=''备注

  • 我有一个多边形的顶点列表,我试图在一个较大的三角形内创建一个等边三角形网格,以输入多边形的当前顶点为中心。 内部三角形边的大小由确定,它将容器边划分为相等的部分。最后,我想在Python的列表中存储所有这些三角形(包括原来的大三角形)顶点的坐标。 我提出的一个方法是: null

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我有一个关于Java的问题,因为我了解不来用Java绘制几何图形,下面的代码你能帮我吗? 这是代码: 如何创建三角形、正方形和矩形的JFrame?更正我的代码谢谢