1
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 should = testx 和 testy 他们在手工计算时所做的。

4

1 回答 1

8

我可以在这里看到两个可能的问题:

  • atan2在我知道的每种语言中按顺序 (y,x) 获取参数。你传入了 (x,y)。
  • cossin以弧度为单位获取参数,但您以度为单位给出参数。删除乘以 180/pi 以保持角度为弧度。
于 2010-06-05T22:08:13.387 回答