Java 保持矩形的角点精确
我试图保持矩形的角点精确,如下所示。给定一个没有指定顺序的4点列表,我将如何在Java中对该列表进行排序?我无法访问绘制的形状对象,但我有中心点。 具有X和Y属性的点,排序列表的第一个索引为A,最后一个索引为D。 我已经试过了,但是当轮换的时候,列表就出了问题Java 保持矩形的角点精确,java,list,sorting,rect,Java,List,Sorting,Rect,我试图保持矩形的角点精确,如下所示。给定一个没有指定顺序的4点列表,我将如何在Java中对该列表进行排序?我无法访问绘制的形状对象,但我有中心点。 具有X和Y属性的点,排序列表的第一个索引为A,最后一个索引为D。 我已经试过了,但是当轮换的时候,列表就出了问题 Collections.sort(corners, new Comparator<GeoPoint>() { @Override public int comp
Collections.sort(corners, new Comparator<GeoPoint>() {
@Override
public int compare(GeoPoint o1, GeoPoint o2) {
if (o1.getLongitude() < o2.getLongitude()) {
return -1;
} else if (o1.getLatitude() < o2.getLatitude()) {
return 1;
} else {
return 0;
}
}
Collections.sort(角点、新比较器(){
@凌驾
公共整数比较(点o1,点o2){
if(o1.getLongitude()
你不能这样做。如果你旋转矩形PI弧度,所有的角点都会有相同的坐标值,但实际标记的角点会不同
为什么不创建一个类呢
class LabeledPoint {
int id;
Point point;
}
// or perhaps
class LabeledPoint extends Point {
int id;
}
如果每个矩形由一个标记点组成,并且你将该点与其他点一起旋转,那么你可以使用id对角点列表进行排序。我计算出来了。我将只使用矩形的象限。基于角度,a是270-360,B是0-90,C是90-180,D是180-270
我明白你的意思,但我无法做到这一点,因为我只能得到积分列表。我真的不在乎它是否是同一个角,我只在乎角是否以这种方式排列。有时,我用我的代码,列表会出现混乱。例如,它不是ABCD,而是BACD。我只需要c的这种排列orners。旋转点列表不会改变它们的顺序。因此,如果在位置a、B、C、D中指定它们,则列表仍会将这些更改的点保持在同一索引中。