我一直在尝试使用atan2函数向鼠标旋转一个对象(三角形),但是它似乎无法在一个方向上正确旋转。有什么想法吗?
Point p = MouseInfo.getPointerInfo().getLocation();
double ydistance = p.y-triangle.getTranslateY();
double xdistance = p.x-triangle.getTranslateX();
double angle5 = Math.toDegrees(atan2(xdistance, ydistance));
triangle.setRotate(angle5);
答案 0 :(得分:0)
您已经颠倒了x和y
如您所料,atan2被定义为atan2(y,x)而不是atan2(x,y)。
请参阅https://www.geeksforgeeks.org/java-lang-math-atan2-java/
是弧度与弧度之间的逆时针角度,以弧度为单位 正X轴和点(x,y)。
还请注意,弧度0从正X轴开始,Y = 0(东)