2011-01-29 47 views
0

我正在使用Slick java遊戲庫,並且我使用了Shape的Slick實現作爲碰撞的命中框並且工作正常。我使用shape1.intersects(shape2)來檢查兩個形狀是否重疊。現在我想要做的是讓交叉形狀的中心點用作生成顯示兩個對象之間碰撞的粒子的位置。獲取Shape的交集中心(2D)

我無法找到計算形狀交點的算法的任何解釋,也許是因爲我不知道它是否具有特定名稱。

回答

1

望着文檔,似乎有兩種方法 - unionsubtract - 使用它你可以得到的交集,如下所示:

A ∩ B = A ∪ B - (A - B) - (B - A) 

唯一的問題是,這些方法似乎返回無論這意味着什麼,而不是一個形狀的陣列。

當然,實時操作可能會非常昂貴,因此您可以選擇將碰撞點近似爲位於兩個形狀的邊界框/圓的中心之間。

+0

如果我在兩個中心之間劃一條線,並使用邊界半徑應用上述交點,那麼它應該足夠接近以至於無所謂 - 謝謝 – Affian 2011-01-29 22:09:28