computational-geometry - 基于平面的几何的符号扰动

标签 computational-geometry symbolic-math determinants

我知道可以应用像“Simulation of Simplicity”这样的符号扰动方案'(SoS)到几何谓词,如 4 点方向,以避免处理退化的情况。我假设对基于平面的几何做同样的事情也是有效的,其中点由 3 个平面的交点隐式定义,所以我可以有一个类似的方向谓词告诉我在第 4 个平面的哪一侧定义了点通过前 3 个谎言。我会扰动平面方程的系数而不是点的笛卡尔坐标。

问题是一个点可以由许多不同的平面定义。立方体中的每个顶点都由 3 个平面定义,但金字塔的顶点有 4 个。一致性似乎是像 SoS 这样的方案的一切,我不知道我选择哪 3 个平面来定义一个点是否重要。也许不是,只要每次我提到那个点时我都使用相同的 3 个平面。

那么,问题来了:我可以选择任意 3 个平面来表示一个点吗?

提前致谢。

最佳答案

对于一个非常相似的问题,我将平面表示为一对点 pi 和 pj 之间的扰动平分线: Pij = {p | d2(pi,p) - ei = d2(p_j,p) - ej)} 其中 d2 表示平方欧氏距离 其中 ei = epsilon^(2^i) 表示符号扰动。

然后可以写出三个平面的交集方程,将其注入(inject)到谓词中,将分母与分母分开以避免除法,对 ei 项进行排序并推导符号扰动。

在您的情况下,它将四个平面上的一个点表示为两个点的退化,每个平面都在四个平面中的三个平面上(与使用扰动内圆谓词时 Voronoi 图中的 4 阶顶点完全一样)。

这种表示的优点是符号扰动写起来相当简单(每个平面只有两项)。

我的 GEOGRAM 库中提供了实现和文档:

http://alice.loria.fr/software/geogram/doc/html/namespaceGEO_1_1PCK.html

关于computational-geometry - 基于平面的几何的符号扰动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713752/

相关文章:

c++ - 使用多维数组的递归和动态内存分配来查找 NxN 矩阵的行列式

geometry - 找到点组中最大可能的多边形

matlab - 在 Matlab 中检查有理函数是否简化为多项式

matlab - 如何在MATLAB中提取传递函数的符号系数

javascript - 调整大小脚本会放大,而不是缩小。使用行列式会让事情变得紧张

r - 在 R 中计算矩阵行列式的其他方法

python - 沿多边形边界生成等距点,但 CW/CCW

python-3.x - 如何在python中找到两个向量之间的顺时针角度?

c++ - 将 Eigen3 变换的旋转转换为 AngleAxis

MATLAB 的符号数学无法求解简单的不等式