Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Поворот вектора a ближайшим путем к вектору b


Автор: 31416 23.10.2006, 15:48
Нужно осуществить поворот вектора a ближайшим путем к вектору b, на заданный угол w -  если угол больше
угла между ними то они должны совпасть .
Кто сталкивался какие будут идеи,советы,код...

Автор: digs 23.10.2006, 16:41
Обычная матрица поворота. В инете полно информации.
Что касается направления, то можно через вектор b построить прямую,
(например считая, что начало вектора совпадает с началом координат)
и найти ее уравнение вида Ax+By+C=... Потом вычисляешь координаты
конечной точки вектора а (опять же начало в (0,0)) и подставляешь в
функцию прямой. По знаку (положительный или отрицательный) определяешь
с какой стороны от прямой точка находится. Исходя из этого делаешь разворот.

Автор: digs 23.10.2006, 16:56
Кажись я все усложнил. 
Там можно попробовать определить угол через свойство:
Квадрат любой стороны треугольника равен сумме квадратов двух других сторон без удвоенного произведения этих сторон на косинус угла между ними.
если брать строны ориентированно, возможно удастся получить положительный/отрицателльный угол

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)