有趣的三角问题在这里......
我在 Android 屏幕中间有一个圆圈。我需要根据用户触摸屏幕的 X、Y 坐标从正 Y 轴获取角度。
此刻,我所有的高中几何都让我失望了。任何帮助,将不胜感激。
谢谢!
有趣的三角问题在这里......
我在 Android 屏幕中间有一个圆圈。我需要根据用户触摸屏幕的 X、Y 坐标从正 Y 轴获取角度。
此刻,我所有的高中几何都让我失望了。任何帮助,将不胜感激。
谢谢!
如果您触摸点 x1、y1 和
xc = display.getWidth()/2;
yc = display.getHeight()/2;
然后 atan2( y1 - yc, x1 - xc) 将给您并以对应于图中角度“a”的弧度给出答案。
您所指的“正 y 轴”对应于 90 度角或 pi/2 弧度。如果您真正想要的是“与正 y 轴的角度”,那么您需要从您的角度中减去 pi/2 并使用以下等式获取绝对值(以获取 y 轴与您之间角度的原始差异):
angleInRadiansAwayFromYAxis = Math.abs(Math.atan2(y1 - yc, x1 - xc) - Math.PI/2);
如果你想要角度 b 和 a 之间的绝对角度差(所以,假设水平 y 轴是 0 角度)你只需要减去角度:
angleInRadiansFromYAxis = Math.atan2(y1 - yc, x1 - xc) - Math.PI/2;
如果负数困扰您,您可以随时在 Math.PI * 2 对任何负数结果来获得 0 和 pi*2 之间的正数。