0

有趣的三角问题在这里......

我在 Android 屏幕中间有一个圆圈。我需要根据用户触摸屏幕的 X、Y 坐标从正 Y 轴获取角度。

此刻,我所有的高中几何都让我失望了。任何帮助,将不胜感激。

谢谢!

4

1 回答 1

1

如果您触摸点 x1、y1 和

xc = display.getWidth()/2;

yc = display.getHeight()/2;

x1, y1 在左上角。 x2, yc 在中心。 角 b 和角 a

然后 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 之间的正数。

于 2013-03-15T02:01:36.257 回答