0
測試鏈接:http://bit.ly/Runmah多邊形內的移動形狀
從左側挑選一個項目進行測試。
當他找到線上的兩個相交點時,它正在旋轉。
我想移動多邊形內的紅色矩形。它不應該超出多邊形。
我的代碼是:http://pastebin.com/pRMpk81f
編輯1:http://pastebin.com/C3j4WSC1
測試鏈接:http://bit.ly/Runmah多邊形內的移動形狀
從左側挑選一個項目進行測試。
當他找到線上的兩個相交點時,它正在旋轉。
我想移動多邊形內的紅色矩形。它不應該超出多邊形。
我的代碼是:http://pastebin.com/pRMpk81f
編輯1:http://pastebin.com/C3j4WSC1
如果你知道如何尋找上線點的交集,那麼你應該能夠找到牆壁和傢俱(線和邊緣之間的距離矩形的),你可以檢查此值,例如停止draging和捕捉,
EDIT1: 當拖動項目被選中(按下鼠標時),比你不斷地檢查距離(例如,在鼠標移動)時, ñ你可以決定,如果距離在一定的閾值內,你將停止移動(基本上你會設置計算位置快照 - 而不是應用鼠標位置),否則你將按照鼠標。
EDIT2: 也可以測試如果該點是在形狀內部通過計算交點 - 偶數的點以外,奇數 - 點是內部
問候
我試圖那。找到相交點時,我停止了傢俱的移動。但是,如何在停止時再次移動它? –
更新的答案 - 基本上不是你停止拖動 - 你所做的只是在滿足一些條件時設置新的位置。 –
我想完全拖動拖動,並通過監聽MouseEvents移動,每次檢查是否超出界限,如果是,則旋轉,如果旋轉後是,則不要移動(在計算之前存儲以前的位置和旋轉)。 – Vesper