如何将四个点链接成凸多边形?我的意思是如何确定这四个点的顺序。
谢谢。
中
谢谢。
中
取中心点(即x和y坐标的平均值),然后计算y<centery
和y>=centery
的x/y值,我想这应该是最快的方法。
(也就是说,如果我一开始理解问题的话...)
将它们垂直排序,将两个最上面的连接在一起,将两个最下面的连接在一起。
水平排序,然后将最左边的两个连接在一起,将最右边的两个连接在一起。
编辑:无论如何,SO右侧酷炫的相关部分建议一个已回答的重复问题:按顺时针顺序排序四个点
atan2() 方法非常方便,几乎所有编程语言都支持。
atan2(y,x)
可以将直角坐标 (x,y)
转换为极坐标 (r,theta)
中的角度 theta
。
给定 4 个点,找到它们的平均值。然后计算通过从每个点中减去平均值而获得的四个 (x,y) 向量。
对于这些 (x,y) 向量中的每一个,计算角度 θ = atan2(y,x)。θ 的取值范围在 -π/2 和 π/2 之间。
对 θ 进行排序。这将给出点的顺序,按顺时针方向排列。
这仅适用于凸四边形。
atan2(py-cy,px-cx)
。 - brainjam//我们应该在这里执行atan2(),但跳过这一步更快
,所有人都会很高兴。 - mvds