维护中心点周围的点列表,保留逆时针顺序

时间:2012-02-17 23:04:53

标签: geometry computational-geometry

我有以下课程:

 public class Vertex() {
    private double xCoord;
    private double yCoord;
    private ArrayList<Vertex> neighborList();
 }

我想支持向neighborList添加/删除顶点,以便在这个顶点周围以CCW顺序列出这些点(列表中的第一个点无关紧要)。如果点是共线的,那么应该首先接近点。我已经尝试了几种方法,但到目前为止总能找到一个对给定方法不起作用的反例。

有没有人知道如何以简单有效的方式做到这一点?

1 个答案:

答案 0 :(得分:3)

以极坐标形式显示点坐标

t = atan2(Y-Yo, X-Xo)
r = sqrt((X-Xo)^2 + (Y-Yo)^2)

并在角度和半径上使用词典排序。