我正在尝试编写一个程序来计算添加两个向量的结果。不需要大小。
轴承定义为第一个矢量尾部的第二个矢量尖端的方位。
当我尝试运行它时,程序崩溃了。我也意识到这些功能没有返回预期的结果。
任何帮助表示赞赏。提前谢谢。
#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));
}
答案 0 :(得分:-1)
我认为你需要考虑atan2。
请参阅此stackOverflow帖子: what is the difference between atan and atan2 in c++?