java - 保持矩形的角准确
问题描述
我试图保持矩形的角准确,如下所示。给定一个没有指定顺序的 4 个点的列表,我将如何在 Java 中对该列表进行排序?我无权访问绘制的形状对象,但我确实有中心点。
A Point 具有 X 和 Y 属性,排序列表的第一个索引是 A,最后一个索引是 D。
我已经尝试过了,但是在轮换列表时会出现故障。
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;
}
}
解决方案
你不能这样做。如果旋转该矩形 PI 弧度,所有角将具有相同的坐标值,但实际标记的角会不同。
为什么不创建一个类
class LabeledPoint {
int id;
Point point;
}
// or perhaps
class LabeledPoint extends Point {
int id;
}
如果每个矩形都由 a 组成,LabeledPoint
并且您将该点与其他点一起旋转,则可以使用 id 对角点列表进行排序。
推荐阅读
- c# - 通用 ViewModel 类
- mysql - 无法连接托管在 Amazon Web Server 上的 MySql 数据库
- python - 如何从具有对应角度的数组中返回最大值
- c# - 是否可以增加 CEF/CefSharp 中的堆栈大小?
- java - 如何根据不同的屏幕尺寸设置按钮
- ruby-on-rails - tzinfo-data + Rails 报告爱尔兰的时区偏移量错误
- docker - Swarm 模式图像编排如何工作?
- php - 地理编码如何仅在边界区域中搜索地址
- javascript - 如何保持 chrome pdf 查看器工具栏始终打开
- jestjs - 如何运行没有 .test 的 jest 文件。在他们的文件名中?