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