Вопрос по линейной алгебре

n0n4m3

New Member
Здравствуйте, ув. форумчане. У меня есть вектор 1 и вектор 2 в двумерном пространстве. Мне нужно вектор 1 повернуть в направлении вектора 2. Я знаю что матрица поворота против часовой стрелки выглядит так:
[ cos(а) -sin(а)
sin(а) cos(а) ]
По часовой:
[ cos(а) sin(а)
-sin(а) cos(а) ]
Но у меня появилась проблема (от недостатка знаний в этой области): как узнать, в какую сторону мне нужно поворачивать вектор? Существует ли какой-то критерий, по которому можно будет мне это узнать.

И еще посоветуйте какую-либо статью\книгу где мне можно было бы подробно и легко разобраться с векторами.
 

Cris

Member
сначала найди на какой угол поворачивать и там уже смотри( допустим повернуть по часовой на 270 это тоже самое что влево на 90)
как ты находишь угол?

и вообще зачем так делать?
у тебя есть начальная точка вектора 1

делаешь Вектор1 = вектор2 * (вектор1_длинна/вектор2_длинна)
вектор1_длинна/вектор2_длинна = коэфициент длинны
вот готовый повернутый вектор, и начальная точка та что была та и осталась, конечную точку считаешь как
конечная точка Х = начальная точкаХ+вектор1_Х
конечная точка У = начальная точкаУ+вектор1_У
 

Cris

Member
или тебе нужно повернуть в направлении какойто конкретной точки? или центра второго вектора, так несовсем понятно, или в точку куда указывает вектор2?

(тут под вектор2 я подразумевают отрезок2 из которого строится вектор)
 

TraNceR

Member
Да хотябы самый простой критерий- ты получаешь 3 точки - вокруг которой крутишь точка О, и две точки A и B, A - начальная B - вторая точка.
Возьмем 2 вектора OA (x1, y1) и OB (x2, y2) и посчитаем их векторное произвидение:
x1*y2 - x2*y1, его знак указывает на направление поворота если минус то влево, если плюс то по часовой стрелке.
 

n0n4m3

New Member
Cris, относительно начала координат повернуть вектор А к определенной точке.
А меня еще интересует один вопрос, в игростроении какое обычно используют координатное поле: переходят в декартовое (икс вправо, игрик вверх) или по настройкам среды программирования (ноль в левом верхнем углу, игрик вниз, икс вправо)?
 
Останнє редагування:
Зверху