实际上,由于原点是(0,0),所以没有办法找出点和原点之间的角度。我们可以计算两个点之间的角度,因为它们被视为向量,因此它们具有方向,但原点没有方向。因此,如果您想使用时钟的示例来查找角度,您可以计算该点与(1,0)之间的角度,例如该点为0度。
很抱歉我不熟悉C#,但您可以查看这个类似的Java代码:
double getAngle2PointsRad(double p1_x, double p1_y, double p2_x, double p2_y) {
return Math.acos((((p1_x * p2_x) + (p1_y * p2_y)) / (Math.sqrt(Math.pow(p1_x, 2) + Math.pow(p1_y, 2)) * Math.sqrt(Math.pow(p2_x, 2) + Math.pow(p2_y, 2)))));
}
double getAngle2PointsDeg(double p1_x, double p1_y, double p2_x, double p2_y) {
return Math.acos((((p1_x * p2_x) + (p1_y * p2_y)) / (Math.sqrt(Math.pow(p1_x, 2) + Math.pow(p1_y, 2)) * Math.sqrt(Math.pow(p2_x, 2) + Math.pow(p2_y, 2))))) * 180 / Math.PI;
}
如果你尝试使用(0,0)进行计算,你会得到NaN,因为它试图除以零。