![]() |
как узнать: увеличивается ли расстояние между объектами или наоборот?
есть объект, который двигают мышью. и объект, приближение к которому нужно узнать.
как узнать, увеличивается ли расстояние между объектами или наоборот? |
Сравнивать их расстояние каждый кадр. Если следующее больше предыдущего, значит увеличивается.
Расстояние находится по формуле Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)); |
наверно более быстрый вариант - спроецировать смещение на вектор между ними и поглядеть на знак, тем более если p поделить на Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)), то получим скорость сближения:
Код AS3:
P.S. может в знаке ошибся |
спасибо. а как узнать, в какую сторону (вверх или вниз) движется объект? видимо, нужно сравнивать положение объекта с предыдущим его состоянием. только вот как?
|
Код AS3:
я думаю, если увеличивается расстояние, то будет увеличиваться и квадрат расстояния. (хотя если нужно знать расстояние точно, то нужно и корень извлеч) Добавлено через 3 минуты Цитата:
соответственно: ((yOld - yNew) > 0) - вверх, ((yOld - yNew) < 0) - вниз |
2loover: что значит как? Чудес в этой вселенной не бывает. Если вам нужно сравнить положение объекта с его предыдущим состоянием, то это значит, что это предыдущее состояние надо запомнить.
|
в том то и дело: я не знаю когда сохранять одно значение, а когда его сравнивать с текущим.
мне нужно что-то типа скроллера. т.е. чтобы один объект сдвигался относительно другого при перемещении последнего. например, если ползунок сдвинулся на 1 - контент на 2.3. можно запоминать значение в момент MOUSE_MOVE и, если текущее положение объекта не равно этому значению, обновить значение. но это нормально работает, если мышь двигается не очень быстро. в противном случае MOUSE_MOVE отслеживает сдвиг не на один пиксель, а как получится. |
Ну, перерисовывайте по ENTER_FRAME, правда не понятно зачем вообще это нужно :) Сдвиг в один пиксель отследить нереально, да и не нужно. По-моему, вам нужно просто пропорцию составить, если я правильно понял. Посчитать какой процент пути прошел ползунок и на такой же процент сдвинуть контент.
|
Цитата:
|
| Часовой пояс GMT +4, время: 23:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.