Calculating the angle between a line and the x-axis(计算直线与x轴之间的角度)
问题描述
我目前正在为Android开发一个简单的2D游戏。我有一个固定的物体,它位于屏幕的中心,我试图让这个物体旋转,并指向用户在屏幕上触摸的区域。我有代表屏幕中心的常量坐标,我可以获得用户点击的点的坐标。我使用的是本论坛中概述的公式:How to get angle between two points?
如果您想要这两点定义的直线与水平轴的夹角,说明如下:
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)
编辑:您在评论中提到y从上到下递增。在那里面 案例,
delta_y = center_y - touch_y
但将其描述为表达(touch_x, touch_y)
会更准确
在相对于(center_x, center_y)
的极坐标中。就像克里斯夫提到的,
"两点之间的角度"的概念定义不明确。
这篇关于计算直线与x轴之间的角度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:计算直线与x轴之间的角度


基础教程推荐
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01