Расчет движения X Y на основе угла поворота? - PullRequest
19 голосов
/ 04 марта 2011

Скажем, у меня есть объект в 2D-пространстве, который может вращаться, а затем должен двигаться в соответствии с его углом поворота.

Например:

  • Если угол равен 0 (направленный вверх), то on_timer он должен переместиться на 1 на Y и 0 на X.

  • Если угол равен 45, то он должен переместиться на 1 на Y и 1 на X.

  • Если указывать 90 градусов, то 0 по Y и 1 по X.

  • Если указывать 135 градусов, то -1 по Y и +1 поX и т. Д.

Знаете ли вы какие-либо функции для расчета этого?

Ответы [ 2 ]

29 голосов
/ 04 марта 2011

ну, похоже, он движется с разной скоростью для разных углов.

За 0 градусов (прямо вверх) он сдвинулся на 1, но 45 умножился на sqrt (1 ^ 2 + 1 ^ 2) = 1,41.

Я думаю, вы хотите посмотреть на Грех и Кос.

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

С уважением, Герт-Ян

1 голос
/ 04 марта 2011

Проверьте это: http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx (примеры внизу страницы)

...