代码之家  ›  专栏  ›  技术社区  ›  Fihop

如何将四个点链接到凸多边形

  •  2
  • Fihop  · 技术社区  · 14 年前

    如何将四个点链接到凸多边形?我的意思是如何确定这四点的顺序。

    谢谢。

    钟中

    3 回复  |  直到 14 年前
        1
  •  1
  •   brainjam    14 年前

    这个 atan2() 方法很方便,在大多数语言中都可以找到。

    atan2(y,x) 并转换直角坐标 (x,y) 到角度 theta 从极坐标 (r,theta) .

    给4分,找出他们的平均分。然后计算四个(x,y)向量,方法是从四个点中的每一点减去平均值。

    对于每个(x,y)向量,计算角度θ=atan2(y,x)。θ在-π/2和π/2之间。

    排序θ。这将给你点的顺序,顺时针顺序。

    这只适用于凸四边形。

        2
  •  3
  •   mvds    14 年前

    取中心点(即x和y坐标的平均值),然后计算 y<centery 然后 y>=centery . 我想是最快的。

    (也就是说,如果我首先理解了这个问题…)

        3
  •  2
  •   Community CDub    8 年前

    将它们垂直排列,将两个最上面的连接起来,两个最下面的连接起来。
    水平排序,然后将两个最左边的连接起来,两个最右边的连接起来。

    编辑:总之,右边与酷相关的部分建议回答一个副本: Sort Four Points in Clockwise Order