web-dev-qa-db-ja.com

回転角に基づいてXYの動きを計算しますか?

2D空間に、回転できるオブジェクトがあり、その回転角に従って移動する必要があるとします。

例えば:

  • 角度が0(上向き)の場合、on_timer Yで1移動し、Xで0移動する必要があります。

  • 角度が45の場合、1 x Y、1 xX移動する必要があります。

  • 90度を指している場合は、Yが0、Xが1です。

  • 135度を指している場合は、Yで-1、Xで+1など。

これを計算するための関数を知っていますか?

19
Rob

まあ、それはさまざまな角度でさまざまな速度で動くようです。

0度(真上)の場合は1移動しましたが、45度の場合はsqrt(1 ^ 2 + 1 ^ 2)= 1.41移動しました。

Sin andCosを見たいと思います。

X += Speed * Math.Cos(angle);
Y += speed * Math.Sin(angle);

よろしくGert-Jan

29
gjvdkamp

これをチェックしてください: http://msdn.Microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx (ページ下部の例)

1
Cosmin