实际上,由于原点为(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,因为它试图除以零。