2013-05-06 118 views
0

我無處不在我可以爲我猜測有一個簡單的解決方案。但是我是一個新的程序員,而且有點麻煩。我在視圖中有幾個可拖動的圖像視圖圓圈,我想防止圖像視圖之間有任何重疊。我不是在尋找任何嚴重的碰撞解決方案(摩擦,矢量等),只是爲了阻止圖像視圖在彼此接觸後再繼續前進。防止兩個可拖動的圓圈交叉時重疊

讚賞解決方案的任何指導。謝謝。

回答

0

這應該只是一個簡單的位置和半徑比較... 當試圖拖動時,計算任意兩個圓的中心點之間的距離(使用新的位置),如果小於半徑,它們重疊。僞代碼:

onMoveAttempted() { 距離= SQRT(((移動(X) - existingcircle(X))^ 2)+((移動(Y) - existingcircle(Y))^ 2))

如果 (距離<(動圈+現有的圓的半徑) 然後 半徑禁止的舉動,因爲圈將重疊 結束時,如果 }

+0

是的,我問什麼是「禁止移動」碼將是 – pDev1 2013-05-06 21:02:08

+0

你需要提供更多關於你的特定情況的上下文。在你的onDrag(假設這是w帽子它,或onMove)回調,你應該有權訪問舊的位置和新的位置。那麼你應該有一個返回值,允許你取消移動事件(代碼示例,你到目前爲止有助於更具體)。如果您沒有該選項,那麼以編程方式將位置設置回舊的(預移動/拖動)值,或設置爲與其進行聯繫的限制。 – user1676075 2013-05-07 14:15:11

+0

生病請嘗試,謝謝 – pDev1 2013-05-07 15:42:01