快速算法获得多个共线点的最外点

时间:2014-03-02 19:13:54

标签: algorithm 2d point outer-join

我有多个未分类的2D点 P0 P1 P2 ,..., Pn 这些都是共线的。我想尽可能快地获得距离最远的外部点 * P_0 * * P_n *

P0          P1       P2   P3                   Pn
|-----------|--------|----|--------------------|

我不知道怎么做但是用蛮力算法计算所有距离而不是对点进行排序。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果点是共线的,那么您可以通过直接比较它们的坐标来比较它们。您无需计算距原点或点之间的距离。而且您不需要对整个列表进行排序以获得最小值和最大值。

的伪代码:

min = p0
max = p0
for each point p
    if p.X < min.X || p.Y < min.Y then min = p
    if p.X > max.X || p.Y > max.Y then max = p

您可以稍微调整算法:除非Y值完全相同,否则无需检查X