还有另一个线程 Rounding issue when dealing with Radian Angles and Distance. c++
但似乎它已经变得复杂了,我已经达到了将我的范围缩小到我的2个函数给我错误的地步。
使用(0,0)(1,1)(1,-3)的代码打印出来像这样: https://gyazo.com/db19c0263a45543653e1d9549a4dd50b
//Uses distance formula to find the Magnitude of a "Vector" from Coordinates
(x1,y1) to (x2,y2)
double distance(double x1,double y1,double x2,double y2)
{
double vDistance = sqrt((x2 - x1)*(x2 - x1) + (y2-y1)*(y2-y1));
return vDistance;
}
前两个答案1.414 ......和4是正确的然后第三个使用x1y1(0,0)和x2y2(1,-3)出现了奇怪的3.16 ....- 3
然后完全评论出来并在这里检查我的其他功能:
/*Finds Positive Radian Angle of Vector C by using inverse tangent given x and y dimensions.
Using Pi at 11 decimals.
*/
double angle(double x2,double y2)
{
double pi = 3.14159265359;
double vAngle = atan(y2 / x2);
if (x2 < 0 && y2 > 0)
{
vAngle = pi + vAngle;
}
if (x2 < 0 && y2 < 0)
{
vAngle = pi + vAngle;
}
if (x2 < 0 && y2 < 0)
{
vAngle = (2 * pi) + vAngle;
}
return vAngle;
}
给了我这个: https://gyazo.com/343ec1eaddb45cc7abd160ab7ac39a5d
这是错误的并且有-3。我正在做的就是调用上面的函数传递它x&amp; y值来自上面的(0,0)(1,1)(1,3),但它也给了我与其他函数类似的错误。
Pleas Halp