JAVA8怎么实现把有微小偏差坐标分组为相同位置?坐标X和Y都是0.05的偏差就认为多个NPC重叠
[{NPC=强盗, X=0.45, y=0.1}, {NPC=宝箱, X=0.5, y=0.15}
JAVA8怎么把有微小偏差坐标分组为相同位置
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- nssnail 2022-11-18 10:54关注
public class Test6 { //偏移量x private static final double OFFSET_X = 0.05; //偏移量y private static final double OFFSET_Y = 0.05; public static void main(String[] args) { NPC npc1=new NPC("海盗",0.45,0.1); NPC npc2=new NPC("宝箱",0.5,0.15); if(compareTo(npc1,npc2)){ System.out.println(npc1.getName()+"和"+npc2.getName()+"处在相同的位置"); }else { System.out.println(npc1.getName()+"和"+npc2.getName()+"处在不同的位置"); } } private static boolean compareTo(NPC npc1,NPC npc2){ //精度计算要换成bigDecimal BigDecimal x1 = BigDecimal.valueOf(npc1.getX()); BigDecimal y1 =BigDecimal.valueOf(npc1.getY()); BigDecimal x2 =BigDecimal.valueOf(npc2.getX()); BigDecimal y2 =BigDecimal.valueOf(npc2.getY()); if (!(Math.abs(x1.subtract(x2).doubleValue())==OFFSET_X)) { return false; } if (!(Math.abs(y1.subtract(y2).doubleValue())==OFFSET_Y)) { return false; } return true; } private static class NPC{ private String name; private double x; private double y; public NPC(String name, double x, double y) { this.name = name; this.x = x; this.y = y; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getX() { return x; } public void setX(float x) { this.x = x; } public double getY() { return y; } public void setY(float y) { this.y = y; } } }
本回答被专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来