我目前正在为 Android 开发一个简单的 2D 游戏。我有一个位于屏幕中心的固定对象,我试图让该对象旋转并指向用户触摸的屏幕区域。我有代表屏幕中心的常量坐标,我可以获得用户点击的点的坐标。我正在使用此论坛中概述的公式:如何获得两点之间的角度? http://www.gamedev.net/community/forums/topic.asp?topic_id=318640
-
它的内容如下:“如果您想要这两点定义的线与水平轴之间的角度:
double angle = atan2(y2 - y1, x2 - x1) * 180 / PI;".
-
我实现了这个,但我认为我在屏幕坐标中工作的事实导致了计算错误,因为 Y 坐标是相反的。我不确定这是否是正确的方法,任何其他想法或建议都会受到赞赏。
假设:x
是水平轴,从左向右移动时增加。y
是纵轴,从下到上递增。(touch_x, touch_y)
是个
用户选择的点。(center_x, center_y)
是中心点
屏幕。theta
是从+x
轴。然后:
delta_x = touch_x - center_x
delta_y = touch_y - center_y
theta_radians = atan2(delta_y, delta_x)
Edit:您在评论中提到 y 从上到下增加。在那里面
案件,
delta_y = center_y - touch_y
但将其描述为表达会更正确(touch_x, touch_y)
在极坐标中相对于(center_x, center_y)
。正如 ChrisF 提到的,
“两点之间的角度”的概念没有明确定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)