从边寻找多面体面 Voronoi 顶点Voronoi 边Voronoi FacesVoronoi 细胞

如何解决从边寻找多面体面 Voronoi 顶点Voronoi 边Voronoi FacesVoronoi 细胞

在数学和计算几何中,对于平面中给定的离散点集合 P 的 delaunay 三角剖分是三角剖分 DT(P),使得 P 中的任何点都不在 DT(P) 中任何三角形的外接圆内。

Voronoi 图是一种曲面细分,将介质分为 2D 多边形和 3D 多面体。 我有一个三维空间的 delaunay 三角剖分。对于从 delaunay 到 Voronoi 的过渡,首先找到 delaunay 四面体的外接球心(顶点),然后确定与该中心相连的边。建立的边缘形成多面体面。

我想知道:有没有一种算法可以从边上找到多面体面?

我会感谢任何给我一点帮助并原谅我写作不足的评论

解决方法

Delaunay 四面体图和 Voronoi 图是彼此的对偶,具有以下关联。

德劳内 Voronoi
四面体 顶点
三角面 边缘
边缘 多边形面
顶点 多面体调用

您可以逐步构建此表中的 Voronoi 对象,直到底部。

Voronoi 顶点

正如您在问题中提到的,Voronoi 顶点是 Delaunay 四面体化中四面体的外心。在此步骤中,重要的是记住哪个 Voronoi 顶点与哪个 Delaunay 四面体(我们将在下一步中使用)相关联。

Voronoi 边

每条 Voronoi 边都与 Delaunay 四面体化中的面相关联。具体来说,Delaunay 四面体化中的每个面都属于两个四面体。 Voronoi 图中的边连接与这些四面体相关联的两个 Voronoi 顶点。再次记住新的 Voronoi 边和 Delaunay 面之间的关联。

Voronoi Faces

每个 Voronoi 面都与 Delaunay 四面体化中的一条边相关联。对于 Delaunay 四面体化中的一条边,我们可以查看连接到该边的 Delaunay 面的集合。这些可以订购,在边缘制作风扇。每个 Delaunay 面都与一条 Voronoi 边相关联。使用相同的顺序,这些 Voronoi 边定义了相关 Voronoi 面的边界。

此配置如下所示。两个 Delaunay 顶点(蓝色)之间有一条 Delaunay 边(红色)。连接到边的 Delaunay 面以透明灰色显示。还显示了相应的 Voronoi 面(绿色)及其边缘(橙色)。

Voronoi face configuration

Voronoi 细胞

每个 Delaunay 顶点都连接到一个 Delaunay 边列表。每条边都与一个 Voronoi 面相关联。这些相关联的 Voronoi 面的集合绑定了作为 Delaunay 顶点的对偶的 Voronoi 单元。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?