找到载体的方位

时间:2016-01-17 17:36:02

标签: c++

我正在尝试编写一个程序来计算添加两个向量的结果。不需要大小。

轴承定义为第一个矢量尾部的第二个矢量尖端的方位。

当我尝试运行它时,程序崩溃了。我也意识到这些功能没有返回预期的结果。

任何帮助表示赞赏。提前谢谢。

#include <iostream>
#include <math.h>

#define PI 3.14159265358979323846264338

using namespace std;

int _atan(int y, int x)
{
    if (x=0)
    {
        return 90*abs(y)/y;
    }
    else
    {
        return atan(y/x)*180/PI;
    }
}

int _bearing(int x0, int y0, int x1, int y1)
{
    int bearing;
    bearing=90-_atan(y1-y0, x1-x0);
    if (bearing<0)
    {
        bearing=bearing+360;
    }
    return bearing;
}

int _vectorAdd(int m1, int b1, int m2, int b2)
{
    _bearing(0, 0, m1*sin(b1)+m2*sin(b2), m1*cos(b1)+m2*cos(b2));
}

int main()
{
    int m1;
    int b1;
    int m2;
    int b2;
    scanf("%d %d %d %d", &m1, &b1, &m2, &b2);
    printf("%d\n", _vectorAdd(m1, b1, m2, b2));
}

1 个答案:

答案 0 :(得分:-1)

我认为你需要考虑atan2。

请参阅此stackOverflow帖子: what is the difference between atan and atan2 in c++?