2012-11-01 55 views

回答

2

如果你知道如何尋找上線點的交集,那麼你應該能夠找到牆壁和傢俱(線和邊緣之間的距離矩形的),你可以檢查此值,例如停止draging和捕捉,

EDIT1: 當拖動項目被選中(按下鼠標時),比你不斷地檢查距離(例如,在鼠標移動)時, ñ你可以決定,如果距離在一定的閾值內,你將停止移動(基本上你會設置計算位置快照 - 而不是應用鼠標位置),否則你將按照鼠標。

EDIT2: 也可以測試如果該點是在形狀內部通過計算交點 - 偶數的點以外,奇數 - 點是內部

問候

+0

我試圖那。找到相交點時,我停止了傢俱的移動。但是,如何在停止時再次移動它? –

+0

更新的答案 - 基本上不是你停止拖動 - 你所做的只是在滿足一些條件時設置新的位置。 –

+0

我想完全拖動拖動,並通過監聽MouseEvents移動,每次檢查是否超出界限,如果是,則旋轉,如果旋轉後是,則不要移動(在計算之前存儲以前的位置和旋轉)。 – Vesper