碰撞檢測如何實現(xiàn) cocoscreator怎么做碰撞檢測?
cocoscreator怎么做碰撞檢測?qt怎么檢測碰撞?1。qlabel的邊界是規(guī)則矩形,所以判斷兩個qlabel是否碰撞就是判斷兩個矩形是否相交?矩形qrect類有一個成員函數(shù)intersects
cocoscreator怎么做碰撞檢測?
qt怎么檢測碰撞?
1。qlabel的邊界是規(guī)則矩形,所以判斷兩個qlabel是否碰撞就是判斷兩個矩形是否相交?矩形qrect類有一個成員函數(shù)intersects,可以直接判斷它是否與另一個矩形相交。
2. 要通過鍵盤控制qlabel,需要獲取鍵盤事件,在鍵盤事件函數(shù)中移動qlabel,判斷是否有碰撞。重寫標簽父窗口的keypressevent或keyreleaseevent函數(shù)。
3. 您可以使用圖形視圖框架來編寫界面。使用這個框架來檢測碰撞要容易得多。直接調(diào)用函數(shù)即可。
一個簡單的多矩形碰撞算法,有快于N^2的方法嗎?
謝謝。
我無法理解解決問題時“碰撞”的含義。我把它理解為矩形覆蓋部分重疊時的碰撞。
讓我們首先來看一個簡單的一維情況:一條線由若干具有給定端點坐標的線段分散而成。如何判斷線段是否相交?
n*logn的算法是標記每個端點所在線段的左端點或右端點,然后按坐標對所有端點進行排序。如果線段a的左端點在線段B的左端點和右端點之間,并且線段a的右端點在線段B的左端點和右端點之外,則線段a和B相交。所以排序遍歷可以解決。
補充說明:如果線段a及其左右端點位于線段B的左右端點之間,則線段a位于線段B內(nèi)部,即包含關(guān)系。計算包含關(guān)系的復雜性與計算交叉關(guān)系的復雜性相同。
因此,在二元平面上,所有矩形都可以首先投影到x軸上,并且可以一維方式判斷它們是否在x軸上相交。如果它們在x軸上相交,則可以判斷相應矩形的投影線段是否在y軸上相交。如果X和Y軸相交,則可以確定兩個矩形的碰撞。
還可以計算正方形的完全覆蓋關(guān)系。
復雜性是排序n*logn、遍歷n和合成n*logn。
在蟲島有更好的算法嗎。