这里有趣的触发问题......
我在Android屏幕中间有一个圆圈。我需要根据用户触摸屏幕的X,Y坐标从正Y轴获得角度。
我所有的高中几何学现在都让我失望了。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
如果触摸点x1,y1和
xc = display.getWidth()/2;
yc = display.getHeight()/2;
然后atan2(y1 - yc,x1 - xc)将以弧度给出并回答与图中角度“a”相对应的弧度。
您所指的“正y轴”对应于90度或π/ 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之间的正数。