Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   [Алгоритмы] Определить направление движения относительно центра (http://www.flasher.ru/forum/showthread.php?t=206562)

yava 12.02.2014 00:11

Определить направление движения относительно центра
 
Привет,
простой вроде вопрос, но никак не выходит...

есть система 2D координат и точка вращается относительно центра.
Есть (x1,y1) - начальное положение и (x2,y2) - конечное положение.
Как определить направление движение было по часовой или против часовой стрелки относительно центра (0,0)?
Какая формула тут сработает?

П.С. все вроде просто но все мои варианты работают плохо в реальном flash-е.

GBee 12.02.2014 00:28

угол уменьшился против часовой, увеличился по часовой

Добавлено через 19 минут
правда пограничное значение смущает.

alexcon314 12.02.2014 01:06

Можно попробовать использовать векторное произведение и его знак:
Цитата:

Векторным произведением 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 соответственно.

yava 12.02.2014 02:32

СПАСИБО!


Часовой пояс GMT +4, время: 22:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.