double testx, testy, testdeg, testrad, endx, endy;
testx = 1;
testy = 1;
testdeg = atan2( testx, testy) / Math::PI* 180;
testrad = sqrt(pow(testx,2) + pow(testy,2));
endx = testrad * cos(testdeg);
endy = testrad * sin(testdeg);
这部分似乎等同于正确, 除了endx和endy应该= testx和testy 他们在手工计算时会这样做。
答案 0 :(得分:8)
我可以在这里看到两个可能的问题:
atan2
以我所知道的每种语言中的顺序(y,x)获取参数。你传入(x,y)。cos
和sin
以弧度为单位获取参数,但您以度为单位给出它们。将乘法移除180 / pi以保持角度为弧度。