C ++函数没有返回正确的值

时间:2018-04-29 03:50:25

标签: c++

还有另一个线程 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

0 个答案:

没有答案