Показать сообщение отдельно
Старый 12.02.2014, 01:06
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 3  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Можно попробовать использовать векторное произведение и его знак:
Цитата:
Векторным произведением A×B двух векторов A = (Ax, Ay) и B = (Bx, By) назовем число (!), равное Ax×By − Bx×Ay.

Если сопоставить данное нами определение векторного произведения с тем, которое дается в курсах аналитической геометрии (наше произведение оказывается z-координатой «стандартного»), то ответ на поставленный вопрос очевиден: если A×B > 0, то A надо поворачивать против часовой стрелки, если A×B < 0, то A надо поворачивать по часовой стрелке, если A×B = 0, то векторы либо сонаправлены, либо направлены в противоположные стороны.
Ну, т.е для двух соседних положений вычислять векторное произведение и смотреть на знак, только порядок множителей в произведении соблюдать. Можно также привлечь для проверок базисные вектора (вдоль координатных осей).
В контексте вопроса Ax,Ay - это x1,y1, Bx,By - x2,y2 соответственно.