我目前正在为 Android 开发一个简单的 2D 游戏。我有一个位于屏幕中央的静止物体,我试图让该物体旋转并指向用户触摸的屏幕区域。我有代表屏幕中心的常量坐标,我可以获得用户点击的点的坐标。我正在使用本论坛中概述的公式: How to get angle between two points?
- 它说如下“如果你想要由这两点定义的线与水平轴之间的角度:
double angle = atan2(y2 - y1, x2 - x1) * 180 / PI;".
- 我实现了这个,但我认为我在屏幕坐标中工作的事实导致计算错误,因为 Y 坐标是相反的。我不确定这是否是正确的方法,如有任何其他想法或建议,我们将不胜感激。
原文由 kingrichard2005 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设:
x
为横轴,从左向右移动时递增。y
为纵轴,从下往上递增。(touch_x, touch_y)
是用户选择的点。(center_x, center_y)
是屏幕中心的点。theta
从+x
轴逆时针测量。然后:编辑:您在评论中提到 y 从上到下增加。在这种情况下,
但是将其描述为在相对于
(center_x, center_y)
(touch_x, touch_y)
会更正确。正如 ChrisF 所提到的,采用“两点之间的角度”的想法没有明确定义。