Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение на точку с доп. функционалом (http://www.flasher.ru/forum/showthread.php?t=151244)

AlexCooper 25.02.2011 00:08

Движение на точку с доп. функционалом
 
Вложений: 1
Всем доброго время суток.
Вопрос следующего характера, хотел найти что-то более-менее похоже на то что хочу реализовать но то что знаю и то что нагуглил дают частичные функции реализации следующего.
Хочу описать функцию которая оперируя следующими параметрами
  1. xs,ys - начальные координаты
  2. xt,yt - конечные координаты
  3. sr - начальное значение rotation
  4. ks - ускорение
  5. ms - максимальная скорость
  6. ss - начальная скорость
  7. tl -расстояние в пикселях по траектории движения до конечных координат с которых начинается обратное ускорение или же торможение до нуля

    * в некоторых примерах обнаружил следующие
    Код AS1/AS2:

    _x += (xt-_x)/speed;
    _y += (xt-_y)/speed;

    смотрится не плохо, потому думаю логичным будет включение в исчисление движения при достижении tl
  8. arc - угол при повороте
А в результате функция должна переместить заданный клип из xs,ys в xt,yt с учётом tl и ускорением до максимальной скорости. Но налаживается следующие особенности траектории.
Если "нос" клипа устремлён в противоположную сторону от конечных точек, то клип должен сначало осуществить разворот, но не на месте, а выполнив сначало круговое движение и выровняв "нос" в конечную точку осуществить прямолинейное движение

*когда то описывал движение клипа относительно его rotation
Код AS1/AS2:

_x += Math.cos(Math.PI/180*_rotation)*speed;
_y += Math.sin(Math.PI/180*_rotation)*speed;

Я не перекладываю своих тараканов на Ваши плечи, естественно сам буду пытаться сложить нужный алгоритм, это намного приятней чем использовать чей-то, но буду рад за любую полезную информацию.

Заранее благодарен.

Ниже приведу иллюстрацию примерных траекторий

Hauts 25.02.2011 00:10

Почитайте это, много интересного для себя найдете. Там три статьи. Очень похоже на вашу задачу "Шаг 8. Прибытие (arrive)".

А вообще думаю в подобной функции будет использоваться цикл с интегрированием Верле. То есть сначала прогоняем все будущие значения х и у для объекта и находим то его положение, при котором он начнет торможение. Потом сохраняем у объекта массив точек его пути и запускаем анимацию через интервал.

Как-то так, наверное. Было бы побольше времени, попробовал бы написать код :)

Еще есть вариант использовать этот пример, ваши схемы напоминают траекторию движения автомобиля (поворот до нужного направления и подъезжание). Там только управление на автоматическое поменять.

AlexCooper 25.02.2011 00:35

Спасибо. Сейчас будем ознакомляться и пытаться всё сложить до кучи. Примеры хорошие, правда у меня не автомобильная а космическая тематика, потому более подойдёт первая ссылка, так как движение собираюсь производить по клику мыши, но обязательно изучу оба ресурсы.

+ в карму

Добавлено через 50 секунд
от не задача
Цитата:

Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Hauts.


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

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