У меня есть евклидов вектор 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;
Используя приведенный выше код, с углом
значение 90,0 градусов, результирующие координаты: (- 1, 1)
.
И я чертовски сбит с толку.
Примеры, приведенные в следующих ссылках, наверняка представляют ту же формулу, показанную выше?
Что я сделал не так? Или я неправильно понял, как повернуть вектор?