Как вращать 2D вектор по часовой стрелке или против часовой стрелки? - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь повернуть унитарный вектор A, ориентированный по оси Y, согласно базе данных инструкций.

Вектор описывается как ((x1, x2), (y1, y2).

A = np.array([ 0 ,0 ] , [ 0 , 1 ] )
Database = ['left', 'right', 'right', ... ]

Если, например, мы вращаемся 4 раза по часовой стрелке, мы должны получить:

#First spin
[(0,1),(0,0)]
#Second spin
[(0,0),(0,-1)]
#third spin
[(0,-1),(0,0)]]
#fourth spin
[(0,0),(0,1)]

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете вращать вектор, умножая его на матрицу вращения . В данном примере начальный вектор поворачивается на 30 градусов против часовой стрелки (как положительные углы в декартовой системе координат):

A = np.array([ 0 , 1])

theta = np.radians(30)
c, s = np.cos(theta), np.sin(theta)
R = np.array(((c,-s), (s, c)))

A = np.dot(R, A)

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