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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
По умолчанию (Версия 2.1) Полет самолета от точки к точке (вид сверху)

Привет,

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

Дайте направление куда копать или решение, пожалуйста. Сам думаю, что надо как то хитро применять силу на каждой итерации, но допетрить не могу и в инете не нашел.

Пардон за кривые термины.

Добавлено через 19 минут
http://mathworld.wolfram.com/CubicSpline.html вот подкинули ссылку, пока читаю.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 20.10.2011, 12:04
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 2  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Мне кажется здесь не в движке дело. Подобные проблемы решаются в высшей математике. Поделюсь ссылочками, возможно помогут
http://ru.wikipedia.org/wiki/%D0%9C%...BD%D0%B6%D0%B0

http://ru.wikipedia.org/wiki/%D0%9A%...B7%D1%8C%D0%B5

Старый 20.10.2011, 12:13
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Движок сам может эти траектории расчитывать. Он на то и физ движок. Главное не пытаться его заставить поменять угол через SetAngle, а придумать способ указать следующую точку и приложить нужную силу

Старый 20.10.2011, 12:16
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 4  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Тогда сорри. У меня только знания математики...

Старый 20.10.2011, 13:01
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 5  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Тогда сорри. У меня только знания математики...
Мне бы ваши знания :о))

Цитата:
Движок сам может эти траектории расчитывать. Он на то и физ движок. Главное не пытаться его заставить поменять угол через SetAngle, а придумать способ указать следующую точку и приложить нужную силу
С утра в голову пришло, что на каждой итерации менять угол (на какую то дельту, со скоростью поворта самолета) и к новому вектору направления прикладывать силу. Когда самолетик будет "смотреть" на нужную точку, угол больше не менять.

[IMG]http://dl.************/u/6132064/plane_angle.png[/IMG]

Добавлено через 1 минуту
Вечером попробую отпишусь.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 20.10.2011, 13:44
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
GBee, а зачем это? Игру с ИИ пишешь? Или просто для эксперимента?

Старый 20.10.2011, 15:55
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
GBee, а зачем это? Игру с ИИ пишешь? Или просто для эксперимента?
Пока секрет, точно скажу что для себя :о) Но движение по точкам очень нужно для красоты. Я уже сделал зигзаговое, через линейную скорость и торможение от точки к точке, но мне хочется именно эмуляции полета самолета.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 20.10.2011, 16:51
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 8  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
У вас точки, через которые оно должно ТОЧНО пролететь?
В принципе steering behaviour рекомендую погуглить в любом случае) У меня первая ссылка там - практически то, что надо (Path Following).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 21.10.2011, 18:03
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Точки можно расположить через одинаковые расстояния узлами кривых безье. Затем перемещаем самолётик, от точки к точке, без бокс2Д, самолётик переместился, на вектор, этот вектор можно использовать как силу для перемещения тела в бокс2Д, но возможно, что тело переместится не туда, куда хочется нам, а руководствуясь некоторым физ законам.
Упорощеный алгоритм такой
Код:
самолётик.позиция = бокс2Дсамолётика.позиция.копировать();
новКоординаты = самолётик.получитьНовыеКоординаты();
самолётик.скорость = новКоординаты - самолётик.позиция;

бокс2Дсамолётика.применитьКакСилу(самолётик.скорость);
бокс2Д.update();
Исходник небольшой собрал, там killOrthogonalVelocity функция, но в принципе без неё то-же как-то работает. Перемещение всего по точкам
Код AS3:
			checkPoint.push(
			new Point(105, 85),
			new Point(107, 80),
			new Point(400, 130),
			new Point(500, 400),
			new Point(200, 400));
И мышкой можно сбивать этот прямоугольничек.
Вложения
Тип файла: zip MoveBesierB2D.zip (109.9 Кб, 45 просмотров)
__________________
Гоночка

Старый 21.10.2011, 18:28
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 10  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Alex Lexcuk
Немного не то, что хочется, точек слишком много в примере. Хотя может правильное решение, проверю, когда будет время.
Пример такой - самолет летит на север, тыкаем точку на юге, он по дуге разворачивается и летит в эту точку.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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