(-6/35)
我用计算了 的角度atan2(-6/35)
。结果是-9.7275785514016047
。
现在要回来,我使用了维基百科的公式
distance = sqrt(6*6+35*35);
angleRelativeToPatternOrigin = -9.7275785514016047;
double x1 = distance * cos(angleRelativeToPatternOrigin);
double y1 = distance * sin(angleRelativeToPatternOrigin);
我希望得到坐标(-6/35)
但我得到了 ( -33.895012797701419/10.589056022311761
)
所以我认为这是错误的,因为atan2
定义在4 个象限上,sin
并且cos
只定义在2个象限上。
这个对吗?怎么做才对?
编辑:
现在,首先我很抱歉以糟糕的方式描述我的问题。我实际上做了以下
int main(int argc, char* argv[])
{
int x = -6;
int y = 35;
double radian = atan2(x,y); // this was wrong. atan2(y,x) is correct.
double degree = radian * (360 / (2 * 3.14159265358979323846));
double distance = sqrt(6*6+35*35);
double x1 = distance * cos(degree); // Wrong because I used degree
double y1 = distance * sin(degree); // instead of radian
return 0;
}