2010-06-05 146 views
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和恩迪应该= testx和暴躁 手工计算当他们这样做。极坐标和笛卡尔坐标计算不完全正常?

+0

你可以添加你看到的值。 – ChrisF 2010-06-05 22:06:17

+0

你的参数是否为atan2? – mbeckish 2010-06-05 22:07:09

+0

@mbeckish - 好点,但在这种情况下无关紧要,因为两个值都是1 – ChrisF 2010-06-05 22:07:56

回答

8

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

  • atan2在我所知道的每一个语言都是需要花费为了(Y,X)的参数。你通过(x,y)。
  • cossin以弧度表示参数,但是您以度为单位给出它们。除去乘以180/pi以保持弧度的角度。
+0

啊,哇,我输入degs进入cos/sin而不是RADS。谢谢 – Smoka 2010-06-05 22:21:43