簡體   English   中英

橢圓與弧之間的碰撞檢測

[英]Collision Detection between a Oval and Arc

我正在寫一個簡單的游戲,或者看起來。 我創建了一個繪制Arc2D (半圓形)的類,該類將隨着鼠標的移動重新繪制拱形。

在此處輸入圖片說明

然后,我創建了一個繪制橢圓的新類。 該課程有一些簡單的數學方法可以在屏幕上移動橢圓形。 橢圓的運動不是很重要。 現在,完成此操作后,我想檢測橢圓形是否在任意點與圓弧碰撞(半圓, Only the arc line )。

我試圖將橢圓形做成矩形並使用相交方法。 該代碼在圓弧的draw方法中。

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 有沒有辦法查看它們是否相交? 由於隱私政策,這就是我可以提供的所有代碼。 請幫忙。

好吧,我不確定您的MasterOval類是否實現Shape接口,但是,如果確實實現(如果沒有,則考慮使用Ellipse2D.Double或類似的東西),這是最簡單的方法(可能是標准方法?)檢查Shape實例之間的沖突是使用Area

Shape1 shape1 = new Arc2D.Double(...);
Shape2 shape2 = new Ellipse2D.Double(...);

Area area1 = new Area(shape1);
Area area2 = new Area(shape2);

if (area1.intersect(area2)) {
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM