椭圆与弧之间的碰撞检测

时间:2014-05-03 20:41:30

标签: java collision-detection paint

我正在写一个简单的游戏,或者看起来如此。我创建了一个绘制Arc2D(半圆形)的类,相同的类将在鼠标移动时重新绘制拱形。

enter image description here

然后我创建了一个绘制椭圆的新类。这个类有一些简单的数学来移动屏幕上的椭圆。椭圆形的移动并不是很重要。所以现在这样做了,我想检测椭圆是否在任何点与弧(半圆,Only the arc line)发生碰撞。

我试图将椭圆变为矩形并使用相交方法。此代码位于弧的绘制方法中。

Arc2D temp= new Arc2D.Double(200, 200, 100, 100, angle, 180, Arc2D.OPEN);
MasterOval m = new MasterOval();
Rectangle r1 = m.bounds();//This gets the bounds of the oval
if(r1.intersects(temp.getBounds()))
    System.out.println("hit");//display if intersects

出于某种原因,我无法弄清楚为什么当它与弧相撞时它不会显示单词hit。有没有办法看看他们是否会拦截?这是我可以提供的所有代码,因为隐私政策。请帮忙。

1 个答案:

答案 0 :(得分:3)

好吧,我不确定您的MasterOval类是否实现Shape接口,但如果确实如此(如果没有),请考虑使用{{1}或类似的东西),检查Ellipse2D.Double实例之间的冲突的最简单方法(标准可能是?)正在使用Shape

Area