2012-07-19 105 views
0

我在Java中有两个单独的对象,Object1Object2,它们都是相同的大小和方形。对于每个对象,我可以得到的坐标为xy。我需要做的是检查Object1是否在Object2的某个距离内。该距离在XY轴上均在32点以内。如果对象(x,y)靠近其他对象(x,y)

条件满足后,我可以运行我的代码。例如

if (check condition) { 
    //my code here 
    } 
+3

作业,是啊? – Reimeus 2012-07-19 19:38:07

+0

你有对象宽度吗? – MStodd 2012-07-19 19:45:14

+0

这是对象的宽度吗?还有:(x,y)属性是每个对象的中心还是角落? – Barranka 2012-07-19 20:54:26

回答

4

尝试以下操作:

if(Math.abs(Object1.x - Object2.x) <= 32 && Math.abs(Object1.y - Object2.y) <= 32) 
{ 
    // Do stuff 
} 
+0

正是我需要的。谢谢! – stumct 2012-07-19 19:47:13

+0

然后您可能想要接受答案。 – Baz 2012-07-19 19:49:20

+3

此外,检查欧几里德距离和毕达哥拉斯公式。 – 2012-07-19 19:50:53

3

如果这些矩形,而不是点,你需要补偿其宽度和高度。由于它们是正方形,所以只要使用它们的宽度即可

if(Math.abs(Object1.X - Object2.X) <= 32 + Object1.Width && Math.abs(Object1.Y - Object2.Y) <= 32 + Object1.Width) 
{ 
    // my code here 
} 
相关问题