在 Visual Studio C++ 中进行一些计算时,我发现最终angle
值为-1.#IND000000000000
这个值是什么意思?是否超出范围?以下是我试图实现的代码如何计算圆上两点之间的弧角?从这里提到的这个公式
cos -1 ((x 1 x 2 + y 1 y 2 + z 1 z 2 ) / r 2 )
代码
double x = vec1X * vec2X;
double y = vec1Y * vec2Y;
double r = sqrt(((vec2X - originX) * (vec2X - originX))+((vec2Y - originY) * (vec2Y - originY)));
angle = acos ((x + y) / r*r);
重现错误的样本值
vec1X = 91.094001770019531;
vec1Y = 147.74990844726562;
vec2X = 94.163322448730469;
vec2Y = 187.93711853027344;
originX = 136.79920959472656;
originY = 223.69624328613281;