Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2011, 00:08
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Attention Движение на точку с доп. функционалом

Всем доброго время суток.
Вопрос следующего характера, хотел найти что-то более-менее похоже на то что хочу реализовать но то что знаю и то что нагуглил дают частичные функции реализации следующего.
Хочу описать функцию которая оперируя следующими параметрами
  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;
Я не перекладываю своих тараканов на Ваши плечи, естественно сам буду пытаться сложить нужный алгоритм, это намного приятней чем использовать чей-то, но буду рад за любую полезную информацию.

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

Ниже приведу иллюстрацию примерных траекторий
Изображения
 
__________________
return this...


Последний раз редактировалось AlexCooper; 25.02.2011 в 00:11.
Старый 25.02.2011, 00:10
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Почитайте это, много интересного для себя найдете. Там три статьи. Очень похоже на вашу задачу "Шаг 8. Прибытие (arrive)".

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

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

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


Последний раз редактировалось Hauts; 25.02.2011 в 00:20.
Старый 25.02.2011, 00:35
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 3  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Спасибо. Сейчас будем ознакомляться и пытаться всё сложить до кучи. Примеры хорошие, правда у меня не автомобильная а космическая тематика, потому более подойдёт первая ссылка, так как движение собираюсь производить по клику мыши, но обязательно изучу оба ресурсы.

+ в карму

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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