示例图
- 点 A :{ x :x A ; y :y A ; 邻居:{B,J}}
- 点 B :{ x :x B ; y :y B ; 邻居:{A,C}}
- 点 C :{ x :x C ; y :y C ; 邻居:{B,D,G,H}}
- 等
输入
verticies 的集合(点,笛卡尔坐标系)。
问题
如何找到给定点的最近边界(例如绿点1,2,3之一)?我只能使用连接的顶点。
我的想法
找到垂直线(此线穿过问题点)和边(两个顶点之间)的交点。我现在知道2个顶点。怎么继续??
在这种情况下,我可以使用图论中的任何算法吗?
答案 0 :(得分:1)
首先,你的想法有三个极端情况,必须处理:
这就是说,
假设您在该点下方找到了优势。所以你找到了1个边和2个顶点。您可以选择左顶点,计算找到的边相对于源自此顶点的每个线段的角度,然后选择具有最小角度的线段。然后你按照这个新的边来找到一个新的顶点,并迭代。