【发布时间】:2015-01-11 19:12:43
【问题描述】:
我正在开发一个用户用手指移动汽车的游戏。汽车表示为矢量(屏幕中的一个点和旋转角度)。当用户开始拖动汽车时,他会生成一个新点 P。我正在尝试平滑汽车的移动,因此如果该点位于汽车边缘 +/- 10px 的某个位置,它就不会改变其角度(汽车被表示为矩形)。这是一张图片,可以更好地解释:
如何找到点 M(x,y)?
(请注意,角度α是小车的旋转角度,不是O点和P点的角度)
【问题讨论】:
-
澄清一点:角度(a)是角度MOP?你知道P的坐标吗?你知道长度OM吗?你知道OP的长度吗?
-
角度 (a) 是红色矩形的旋转而不是 MOP,但这个角度很容易找到。 P是屏幕上的触摸点(已知)。所以长度 OP 又很容易找到。然而,距离 OP 是未知的,但我们可以找到它:OM = OP * cos(a)。我希望现在更清楚了。谢谢。
-
M 和 P 不一样。目前的解决方案就是这样(M=P),即使距离触摸点很近,汽车也在旋转,这很无聊。我想用这个来改善汽车的移动性。
-
OM = OP * cos(a) 仅当角度 (a) 是我所知的角度 MOP 时才为真。你是说角度 (a) 不是角度 MOP!
-
是的,你是对的,我只是想解释一下,OM 很容易通过 OP 和 OM 夹角的 cos 找到。
标签: graphics geometry trigonometry