我从johncarls解决方案开始,但需要对其进行调整以完全满足我的需求。主要是,当角度增加时,我需要它顺时针旋转。 我还需要0度才能指向北。 他的解决方案使我接近了,但是我决定也发布我的解决方案,以防其他人受益。
我添加了一些其他注释,以帮助解释我对功能的理解,以防您需要进行简单的修改。
/**
* Calculates the angle from centerPt to targetPt in degrees.
* The return should range from [0,360), rotating CLOCKWISE,
* 0 and 360 degrees represents NORTH,
* 90 degrees represents EAST, etc...
*
* Assumes all points are in the same coordinate space. If they are not,
* you will need to call SwingUtilities.convertPointToScreen or equivalent
* on all arguments before passing them to this function.
*
* @param centerPt Point we are rotating around.
* @param targetPt Point we want to calcuate the angle to.
* @return angle in degrees. This is the angle from centerPt to targetPt.
*/
public static double calc