2012-02-14 138 views
3

我的工作不是遊戲,因爲我無法找到用於檢測與旋轉矩形碰撞良好的碰撞檢測方法,我決定嘗試這樣的: 我有一個旋轉矩形(我想我可以得到它的邊角的座標(的CGRect的也許一些功能或三角如有必要) 我想沿着連接兩個角落(甚至只是int類型的行中的所有座標,或具有一定的增量,以便它不會太長),然後把它們放到一個數組中,然後我可以檢查它的邊界矩形不旋轉的包含矩形的球,如果它包含數組的任何點的話。如果是這樣,他們相撞。獲取一條線的座標陣列

有沒有得到這些座標到一個數組中的一個簡單的方法?假設我知道開始和結束? 我的理解是效率不高,但現在我使用的是OpenGL顏色檢測,它太慢了,而且效果不好,所以我需要一種新的方法。

謝謝!

+0

它可能會更容易找到一個線段和一個圓的交點。 [這是一個鏈接](http://doswa.com/2009/07/13/circle-segment-intersectioncollision.html)。 – user1118321 2012-02-14 05:19:06

+0

感謝您的評論,這幾乎是我以後,只是不知道如何得到這條線,並檢查交叉在Objective-C – 2012-02-14 05:30:00

回答

1

您已經通過您的矩形的邊緣線。只要拿走你的4角的X,Y座標,你就有4條線。

一般用碰撞幾乎總是可以找到一種方法來僞造它,我只用一個旋轉的矩形的碰撞,如果你真的需要理會它,很多時候,你可以採取什麼看起來像一個矩形,只是給它一個圓形的碰撞。

如果您正在使用旋轉矩形堅持另一種方法,你可以嘗試是逆旋轉適用於這兩個對象,然後檢查碰撞。因此,如果矩形旋轉45度,則將矩形旋轉回-45度,使其與軸對齊,然後旋轉圓的中心-45度。現在你有一個更簡單的碰撞工作。

你可以得到更多的在這裏: Circle-Rectangle collision detection (intersection)

+0

謝謝你的答案。關於你的第一句話。我有4個角落,但它是如何給我的線?這是我最初的問題。 – 2012-02-14 18:46:55

+0

你有4行,你必須檢查每一行。 - 左上右上,右上右下等 – TurqMage 2012-02-14 18:51:13

+0

不,我的意思是,我怎麼能得到這些點之間的線? – 2012-02-14 18:57:38