2017-02-08 18 views
1

Предполагая, Vector2 is (x, y) Я хочу повернуть его по центру (или любой точке, это просто перевод, чтобы я мог сделать это) любым заданным angle, указанным в радианах.
Мой целевой язык - это javascript.Как повернуть любую точку на любой угол?

+0

[Реализация ответа] (https://gist.github.com/koziejka/17f89f9d81bee1eac3a46458f5211f77) –

ответ

1

Вращение может выполняться посредством линейного преобразования ... матричного умножения.

Учитывая точку p = (x, y) и угол θ вращения, полученная точка p' = (x', y') определяется по формуле:

p' = R(θ)⋅p 

, где R (θ) является матрицей

 | cos(θ) -sin(θ)| 
R(θ) = |     | 
     | sin(θ)  cos(θ)| 

Полученное разложение дается

x' = x⋅cos(θ) - y⋅sin(θ) 
y' = x⋅sin(θ) + y⋅cos(θ) 

Кодирование в JavaScript остается как упражнение для читателя.

 Смежные вопросы

  • Нет связанных вопросов^_^