ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CGAL 5.2 - 2D Apollonius Graphs (Delaunay Graphs of Disks)学习与翻译

2021-03-04 19:58:13  阅读:295  来源: 互联网

标签:Apollonius 5.2 graph wi 隐藏 Graphs Pi 我们


本文基于CGAL 5.2 - 2D Apollonius Graphs (Delaunay Graphs of Disks) 进行翻译和学习

文章目录

定义

在这里插入图片描述根据图片提出问题:
what is apollonius diagram?
what is apollonius graph?

已知apollonius graph和apollonius diagram是对偶的关系,下面就是针对上面的两个问题提出定义。

CGAL的2D Apollonius graph类旨在计算 Apollonius diagram或Additively weighted Voronoi diagram(加权voronoi图)的对偶

Apollonius diagrams

part 1

在图上有一组站点, P i = ( c i , w i ) , i = 1... n P_i=(c_i,w_i),i=1...n Pi​=(ci​,wi​),i=1...n,其中 c i c_i ci​是 P i P_i Pi​的点(point), w i w_i wi​是 P i P_i Pi​的权值(weight)。它把平面细分成相互连接的区域,称为细胞(cell),与站点相关的。(见 Figure 52.1 (left))

点 P i P_i Pi​的 c e l l cell cell是平面上比点 P j P_j Pj​更接近 P i P_i Pi​的点的轨迹, j ≠ i j≠i j​=i。

平面上点 x x x到点 P i P_i Pi​的距离 δ ( x , P i ) δ(x,P_i) δ(x,Pi​)定义为:
δ ( x , P i ) = ∥ x − c i ∥ − w i δ(x,Pi)=∥x−ci∥−wi δ(x,Pi)=∥x−ci∥−wi

(本质即为 x x x 到 c i c_i ci​ 的距离 - w i w_i wi​)

其中 ∥ ∥ ∥为欧几里得范数。即 x x x是 n n n维向量 ( x 1 , x 2 , … , x n ) (x_1,x_2,…,x_n) (x1​,x2​,…,xn​),
∣ x ∣ = x 1 2 + x 2 2 + . . . + x n 2 |x|=\sqrt{x_1^2+x_2^2+...+x_n^2} ∣x∣=x12​+x22​+...+xn2​

很容易看出,voronoi图是此图的一种特殊情况,即 w i = 0 w_i=0 wi​=0时,得到的是voronoi图。

然而,位点Pi可能有一个空单元格( e m p t y    c e l l empty\ \ cell empty  cell)。这也可能发生在 p o w e r    d i a g r a m power \ \ diagram power  diagram的情况下,其对偶是规则的三角剖分( r e g u l a r    t r i a n g u l a t i o n regular \ \ triangulation regular  triangulation)

如果是这种情况,我们将站点称为隐藏的( h i d d e n hidden hidden)(图52.1中的黑色圆圈)。一个不隐藏的站点将被称为可见的( v i s i b l e visible visible)。

part 2 : 关于 w i w_i wi​的讨论

如果所有权数 w i w_i wi​都是非负的,那么Apollonius图可以看作是{P1,…,Pn}的圆集的Voronoi图,其中ci为圆心Pi, wi为圆心半径。

(可以理解为,设 x x x 到以 c i c_i ci​为圆心, w i w_i wi​为半径的圆的最短距离 = d i s t a n c e = distance =distance,则 δ ( x , P i ) δ(x,Pi) δ(x,Pi) = {圆外: d i s t a n c e distance distance || 圆内: − d i s t a n c e -distance −distance )

如果权数允许为负,我们需要到三维来解释Apollonius图在几何上的意义。

(这块负值这里我没有看懂)

我们把 二维欧几里得平面 与 三维中的xy平面 等同起来。

那么点集的Voronoi图可以看作是一组三维圆锥体的下包络线(the lower envelope of a set of 3D cones )在xy平面上的垂直投影,定义如下 : 对于二维点集中的每个点 p p p,我们有一个顶点为 p p p的圆锥 C p C_p Cp​。 C p C_p Cp​的轴是一条直线平行于z轴通过 p p p, C p C_p Cp​ 的角度45∘角。最后, C p C_p Cp​包含在正z半空间中。

Apollonius图相当于在z方向移动这些圆锥体的顶点用一个等于weight的量。权值为负的wi会产生顶点在负z-半空间的圆锥,权值为正的wi会产生顶点在正z-半空间的锥。以一种类似于点的方式,Apollonius图可以定义为移位的锥集的下包络线在xy平面上的垂直投影。

请注意,当所有顶点沿z方向平移相同数量时,锥集的下包络线的投影不会改变。特别地,我们可以将所有锥平移足够大的量,这样所有的顶点都在正z-半空间中。从代数上讲,这意味着如果我们把相同的量加到所有的权重上,Apollonius图不会改变,这特别意味着我们可以假设所有的权重都是正的。

根据以上的观察结果,为了简化我们对Apollonius diagrams的讨论,从现在开始,我们假设所有的权重都是正的,我们将把这些站点当作圆(refer to the sites as circles)。

Apollonius graph

part 1

The Apollonius diagram 是一个平面图, 它的对偶 the Apollonius graph 也是平面图。有很多方法可以将它嵌入到平面上,其中一种方法如Figure 52.1 (right).所示。

一旦我们有了Apollonius diagram,Apollonius graph就被唯一地定义了。如果这些圆的位置是一般的( g e n e r a l    p o s i t i o n general \ \ position general  position)(请参阅下面的精确定义),那么Apollonius graph是一些三角形面(远离 这些圆构成的凸包 )所组成的图。在凸包 近处 ,我们可能有一些尖刺(即1度的顶点)。

(所谓三角形,我们指的是每个面恰好有三条边—不一定是直线边)。

为了统一我们对Apollonius graph的处理方法,我们在(有限的)圆的集合上加上一个无限大的虚构圆,我们把这个圆的位置称为无限大( t h e    s i t e    a t    i n f i n i t y the \ \ site\ \ at\ \ infinity the  site  at  infinity)。

我们可以把 Apollonius graph 外表面的所有顶点都连接 t h e    s i t e    a t    i n f i n i t y the \ \ site\ \ at\ \ infinity the  site  at  infinity ,这样我们就得到了一个图,它所有的面都是三角形的。

然而,Apollonius graph 并不是一个三角剖分图,主要有两个原因:一是它的三角形边有曲线边;二是我们可能有一个图的两个面有两条共同的边,这在三角剖分中是不允许的。( Figure 52.1(right)所示的Apollonius graph的圆集图,这两种特性就都出现了。)

part 2 :general position

我们想通过讨论一般位置( g e n e r a l    p o s i t i o n general \ \ position general  position)的概念来结束我们对 Apollonius graphs理论的简要介绍。

如果没有两个三元圆(triplets of circles)具有相同的相切圆( tritangent circle),则称一组圆处于一般位置。这一陈述是相当专业的,最好在 点的环境下 中加以理解。对于点的等价表述是,我们没有定义同一个外圆的两个三连点(triplets of points),或者等价地说,没有四个点是同圆的。相反,当我们有退化位置的圆时(in degenerate position),Apollonius graph 的存在面有三条以上的边。我们可以通过任意方式简单地对相应的面进行三角化,得到一个图形的三角化版本。

事实上,在CGAL中实现的算法具有这样一个特性:它总是返回一个有效的 Apollonius graphs的三角化版本。这里的"有效"是指它包含了实际的Apollonius graph (也就是Apollonius diagram的实际对偶),并且当存在面的边数大于三的时候,该面和构成它的面们,就被三角化了。它们被三角化的方式取决于图表中圆圈插入和删除的顺序。(这一段没有看懂)

part 3 :hidden circles

最后一点是关于隐藏圆圈的(hidden circles)。首先,我们想要更精确地定义隐藏圆:如果一个圆的单元格内部是空的(empty interior),我们就说它是隐藏的。这个定义允许我们保证所有可见的圆圈都有二维区域的细胞。从几何学上讲,一个圆是隐藏的,这意味着它包含在另一个圆的圆盘的闭合中(参见图52.1)。注意,包含在几个圆盘的并集中的圆,而不包含在其中任何一个圆盘的闭包中,是不隐藏的。

隐藏的圆圈给我们的算法和软件设计带来了额外的困难。因为我们允许在希望的情况下插入和删除圆圈,所以在某个时间点隐藏的圆圈可能会在以后的时间点变得可见;例如,如果我们删除隐藏它的圆,就会发生这种情况。为了这个目的,我们储存隐藏的圆圈,当它们变得可见时,让它们重新出现。我们将在下面详细讨论这个问题。就目前而言,用户有能力控制这种行为就足够了。更具体地说,我们可以抛弃隐藏的圆圈。例如,当我们期望只做插入时,这种选择是完全自然的,因为在这种情况下,隐藏的圆将永远不会再次出现。另一方面,如果删除也是预期的,那么我们就失去了让隐藏的圆圈重新出现的能力。

标签:Apollonius,5.2,graph,wi,隐藏,Graphs,Pi,我们
来源: https://blog.csdn.net/qikik/article/details/113943889

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有