极地和笛卡尔计算不完全有效?

时间:2010-06-05 22:02:16

标签: .net trigonometry cartesian

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 个答案:

答案 0 :(得分:8)

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

  • atan2以我所知道的每种语言中的顺序(y,x)获取参数。你传入(x,y)。
  • cossin以弧度为单位获取参数,但您以度为单位给出它们。将乘法移除180 / pi以保持角度为弧度。