2016-05-28 19 views
-1

正確な角度を測定して度に変換するのに問題があります。角度を計算して度に変換する

Iが最初との距離を計算し:そして

double distance = Math.Sqrt(deltax + deltay); 
Console.WriteLine("Distance :" + Math.Round(distance, 3)); 
Console.WriteLine(""); 

角度算出するを試みた:例えば、X1 = 2、Y1 = 2、X 2 = 1と入力で

double angle = Math.Atan2(deltay, deltax); 
double RadiantoDegree = (angle * 180/Math.PI); 
Math.Round((decimal)angle, 3); 
Console.WriteLine("Angle :" + angle) 

をy2 = 1の場合、角度は-135.000度になるはずです。

+1

入力は何ですか、どの出力を得ていますか、どの出力を期待していましたか? – Carlos

+0

'double'から' decimal'に変換すると、出力に精度と丸めの差異が導入される可能性があります。あなたの計算は少量で、あるいは完全に間違っていますか? – gmiley

+0

1x = 2,1y = 2,2x = 1,2y = 1などの入力では、角度は-135.000度を測定する必要があります。しかし私は0.785度を得た。 –

答えて

1

問題は、換算値angleを使用していないことです。

あなたが行うことができます:

angle = (angle * 180/Math.PI); 

を代わりにRadiantToDegreeを定義し、それを使ったことがないの。だから何が起きるのかは基本的にあなたの角度をラジアンで表示しているだけです。