草庐IT

Delaunay

全部标签

java - 这段 delaunay 三角剖分代码是如何工作的?

我有这段Java代码,它在输入中输入一组点,返回一组表示Delaunay三角剖分的图边。我想知道使用什么策略来执行此操作,如果存在,使用的算法名称。在此代码中,GraphEdge包含两个awtPoint并表示三角剖分中的一条边,GraphPoint扩展了AwtPoint,最终三角剖分的边在TreeSet对象中返回。我的目的是了解此方法的工作原理:publicTreeSetgetEdges(intn,int[]x,int[]y,int[]z)下面是这个三角剖分的完整源代码:importjava.awt.Point;importjava.util.Iterator;importjava.u

c# - 使用约束 delaunay 三角剖分对多边形进行三角剖分

我有一个约束delaunay三角剖分(CDT)算法,我有一个多边形(它可以是凹面或凸面)作为输入。如何在不引入新点的情况下使用该约束delaunay三角剖分算法将多边形分解为三角形?编辑:所有三角形的并集必须等于多边形。所以不能只将CDT连同边界作为约束边来生成三角形,因为无论输入是凹的还是凸的,这都会产生凸多边形。 最佳答案 由于您有一个多边形而不是点云,最简单的方法是简单地进行三角测量,然后访问每条边并使用简单的线-多边形相交测试来测试它是否在原始多边形之外。根据您的算法,您可以将此测试作为三角形segmentation的一部分

c++ - CGAL:错误的 Delaunay 结果?

我对1000个均匀随机点的Delaunay三角剖分结果看起来根本不正确(见图)。有些点似乎属于异常多的三角形......有什么想法吗?详细信息:CGAL3.4,WindowsXP这是我使用的类型:typedefCGAL::Exact_predicates_inexact_constructions_kernelK;typedefCGAL::Triangulation_2Triangulation;typedefTriangulation::PointPoint;显示如下:delaunay_c::Triangulation::Edge_iteratoreit=T.edges_begin(

c++ - 来自 Voronoi 的 Delaunay boost : missing triangle with non-integral point coordinates

遵循这两个资源:BoostbasictutorialSOQuestion我用boost写了一个Delaunay三角剖分。如果点坐标是完整的(我生成了几个随机测试并且我没有观察到错误),它工作正常。但是,如果这些点不是整数,我会发现许多不正确的三角剖分缺少边缘或错误的边缘。例如这张图片是用四舍五入的值构建的并且是正确的(见下面的代码)但是这个图像是用原始值构建的并且是不正确的(见下面的代码)这段代码重现了这两个例子(没有显示)。#includeusingboost::polygon::voronoi_builder;usingboost::polygon::voronoi_diagram

c++ - 如何轻松地用CGAL在球体上构造Voronoi图?

首先,我是CGAL的新手,但经常用C++编程。我想使用CGAL来构造球体上点的Voronoi图。我自己为我的一项研究实现了一个,但数据结构不是很通用,我想使用像CGAL这样更健壮的工业库。从CGAL的文档来看,似乎我们需要使用3DDelaunay三角剖分结合凸包。另外,我找到一篇论文RobustandEfficientDelaunayTriangulationsofPointsonOrClosetoaSphere,它使用CGAL作为基础,但我找不到它的代码。所以任何人都可以提供有关如何在CGAL中执行此操作的示例?CGAL是否有计划用更高效的算法直接支持球形Delaunay和Voron

c++ - 点云三角剖分算法

我想创建一个简单的C++应用程序,给定100个随机点(及其凸包),它将对这些点的云进行三角剖分。我已经搜索过这个主题,我可以看到Delaunay三角剖分是一个选项,但我仍然不明白如何实现它(例如在C++中)。同样在下一个级别,我想将所有Delaunay“非法”三角形涂成不同的颜色,以更好地展示和理解Delaunay的算法。谁能帮我理解如何对这些点进行三角剖分?也许是一小部分代码或通常是我需要实现的算法? 最佳答案 我强烈建议不要从头开始编写任何Delaunay三角剖分算法。如果我这样做是为了直观地了解算法的输出是什么样子,我会选择J

Unity Delaunay三角剖分算法 动态生成

UnityDelaunay三角剖分算法动态生成Delaunay三角剖分Delaunay三角剖分定义Delaunay边Delaunay空圆特性Delaunay三角形Delaunay最大化最小角特性Delaunay三角形特征Delaunay算法DelaunayLawson算法DelaunayBowyer-Watson算法UnityDelaunay三角剖分应用Unity工程创建Unity预制体创建Unity代码相关Delaunay超级三角形添加GetTriangleDelaunay边界顶点存储AddVertexDelaunay超级三角形范围判断ContainAnyoneDelaunay三角形三角边获

c++ - 从 edge_iterator 获取 vertex_handle

我在为Delaunay三角剖分中一条边的每个端点获取vertex_handle时遇到了一些困难。由于我为此苦苦思索了几个小时,所以我想也许你们中的一个人可以帮助我解决这个看似微不足道的问题:#include#include#includeusingnamespacestd;typedefCGAL::Exact_predicates_inexact_constructions_kernelK;typedefCGAL::Delaunay_triangulation_2Triangulation;typedefTriangulation::PointPoint;typedefTriangul

c++ - OpenCV 中是否有用于 Delaunay 三角剖分的 C++ API?

我正在尝试实现一种主动外观模型(AMM),并且在其中一个步骤中我需要获取人脸的三角网格,例如:Delaunaytriangulation似乎很适合这项任务(如果有更好的选择请纠正我),OpenCV有CAPIforit.但是是否有用于Delaunay三角剖分的C++API?当然,如果真的没有C++API,那么为C版本编写包装器也没什么大不了的,但这可能只是缺乏我对API的了解,而不是API本身。在这种情况下,我肯定会更喜欢nativeOpenCV实现。 最佳答案 OpenCV有用于delaunay三角剖分的C++API,但不幸的是它没

【Open3D——使用Delaunay算法构建点云三角网格】

【Open3D——使用Delaunay算法构建点云三角网格】点云三角化是计算机视觉和机器人学中常见的任务,它通常涉及到构建点云的三角网格,以便进行对象分类、目标检测和3D可视化等应用。Open3D是一个强大的库,可以完成点云数据处理和三维场景重建等任务。在本文中,我们将介绍如何使用Open3D库实现点云数据的三角化,具体来说就是使用Delaunay算法构建点云的三角网格。Delaunay三角化是一种广泛使用的方法,用于生成最小化局部凸包的三角形网格。通过划分点集,Delaunay法可以为点集建立三角形剖分,而且生成的三角形剖分具有良好的性质,无奇异、无具有钝角的三角形,这使得其成为处理点云数据