У меня есть евклидово вектор a
, сидящий в координатах (0, 1)
.
Я хочу повернуть a
на 90 градусов (по часовой стрелке) вокруг начала координат: (0, 0)
.
Если у меня есть правильное понимание того, как это должно работать, результирующие (x, y) координаты после вращения должны быть (1, 0)
.
Если бы мне пришлось вращать его на 45 градусов (по-прежнему по часовой стрелке), я бы ожидал, что результирующие координаты будут (0.707, 0.707)
.
theta = deg2rad(angle);
cs = cos(theta);
sn = sin(theta);
x = x * cs - y * sn;
y = x * sn + y * cs;
Используя приведенный выше код с значением angle
90,0 градусов, результирующие координаты: (-1, 1)
.
И я так смущен.
Примеры, показанные в следующих ссылках, представляют собой ту же формулу, которая была показана выше?
Чем я ошибся? Или я неправильно понял, как вектор должен быть повернут?