【发布时间】:2014-07-31 12:41:58
【问题描述】:
我在处理有向几何图时遇到了一个相当不寻常的问题。想象一下图表是国家的边界。我正在寻找一种方法来找到这些面孔。我的图由可能形成循环(但不一定)的有向边组成。
我要找的是每条边的左右面以及左右面的前任和后继。
每个面都应该逆时针构造,这意味着边的左面总是在里面,而右面在特定面的外面。
在一天结束时,面的节点是地理坐标(纬度和经度)。
这是我正在寻找的信息(从 LeftFace.. 开始)
+------+-------+-------+----------+-----------+---------------------+--------------------+
| Edge | NodeA | NodeB | LeftFace | RightFace | PredecessorLeftFace | SuccessorRightFace |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E1 | P1 | P2 | A | C | E5 | E2 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E2 | P2 | P3 | A | C | E1 | E6 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E3 | P3 | P4 | A | B | E2 | E8 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E4 | P4 | P5 | A | C | E3 | E5 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E5 | P5 | P1 | A | C | E4 | E1 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E6 | P3 | P6 | B | C | E3 | E7 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E7 | P6 | P7 | B | C | E6 | E8 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
| E8 | P7 | P4 | B | C | E7 | E4 |
+------+-------+-------+----------+-----------+---------------------+--------------------+
【问题讨论】:
-
对于每个有向边,还要在图中添加对边。然后,对于每个(有向的)边,在该方向上找到面。这意味着,遍历面边,以便在每个顶点中选择最左边的相邻边,直到路径返回到起始顶点。要选择最左边的边,需要顶点的 2D 位置。
-
嗨安特,感谢您回复我。我想我明白了。但是你能不能给我一个小例子来说明你所说的最左边缘是什么意思?
-
从 P3 到 P4(E3 的对面)。在 P4 中,有两种可能继续路径,P5 和 P7。现在检查边缘左侧的角度。 P3-P4-P5 约为 90 度,P3-P4-P7 约为 270 度。角度 P3-P4-P5 小于 P3-P4-P7,因此路径中的下一条边是 E4,路径中的下一点是 P5。
-
非常感谢,安特。如果你写一个,我会接受你的回答:-)