テストリンク: http://bit.ly/Runmah
テストのために左側から 1 つの項目を選択します。
線上に 2 つの交点を見つけると回転します。
ポリゴン内で赤い四角形を移動したい。ポリゴンの外に出てはいけません。
私のコードは次のとおりです。http://pastebin.com/pRMpk81f
テストリンク: http://bit.ly/Runmah
テストのために左側から 1 つの項目を選択します。
線上に 2 つの交点を見つけると回転します。
ポリゴン内で赤い四角形を移動したい。ポリゴンの外に出てはいけません。
私のコードは次のとおりです。http://pastebin.com/pRMpk81f
線上の点の交点を見つける方法を知っている場合は、壁と家具 (線と長方形の端) の間の距離を見つけることができるはずです。この値を確認して、たとえば、ドラッグとスナップを停止します。
EDIT1: ドラッグされたアイテムが選択されたとき(マウスが押されたとき)、常に距離をチェックするよりも(マウスの移動など)、距離がしきい値内にある場合は移動を停止することを決定できます(基本的には、計算された位置スナップを設定します-代わりにマウスの位置を適用する) そうしないと、マウスに従います。
EDIT2: 交点を計算することにより、点が形状の内側にあるかどうかをテストすることもできます-偶数の点は外側にあり、奇数の点は内側にあります
よろしくお願いします