Полярные и декартовы вычисления не полностью работают? - PullRequest
1 голос
/ 06 июня 2010
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 они делают при расчете вручную.

1 Ответ

8 голосов
/ 06 июня 2010

Я вижу две возможные проблемы здесь:

  • atan2 принимает параметры по порядку (y, x) на каждом из известных мне языков. Вы прошли (x, y).
  • cos и sin принимают параметры в радианах, но вы даете их в градусах. Удалите умножение на 180 / pi, чтобы сохранить угол в радианах.
...