Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

Как показать скорость?   Найти похожие ветки 

 
Goida ©   (2004-03-30 12:42) [0]

Как это сделать? Я знаю, что скорость говрит о том, как быстро меняется координата объекта, т.е. при равноускоренном движении я буду прибавлять, например к Х, всё большие и большие интервалы:
Х--Х---Х----Х-----Х--...
Таким образом, фигура будет выводиться в точках Х. Получается прерывистое движение, а мне нужно плавное...
И еще, мне нужно отследить во время движения объекта его пересечение с другим объектом. Но если я каждый раз прибавляю увеличивающиеся интервалы, то мне становятся не доступны положения между точками Х. Как в этом случае проверить пересечение траекторий и отобразить их столкновение? Что мне нужно делать?


 
Morok   (2004-03-30 14:19) [1]

x(t) - это координаты первого объекта в момент времени t

y(t) - это координаты второго объекта в момент времени t

h - шаг времени...

для нахожедения столкновения объектов самое простое это искать пересечение отрезков {y(t), y(t+h)} и {x(t), x(t+h)}

ну и вот собсна......


 
Morok   (2004-03-30 14:21) [2]

прерывистое движение будет в любом случае, чтоб его сгладить, нужно шаг интегрирования сделать достаточно маленьким, а еще лучше адаптивным....


 
Goida ©   (2004-03-30 14:22) [3]

Т.е. перед каждым отображением объектов просчитать их пересечени и если нет, то нарисовать их там, где они должны быть. А если да, то определить их точку столкновения и нарисовать их там, а потом уже, расчитав их будущие траектории, продолжить путь. Так?


 
Goida ©   (2004-03-30 14:23) [4]

А что значит АДАПТИВНЫМ?


 
Morok   (2004-03-30 14:34) [5]

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

бр..........понятно нет?

а вообще читай "An Introduction to Physically Based Modelling" David Baraff


 
Shopot ©   (2004-03-30 23:36) [6]

Я делал так: за основу брал само быстро движущийся объект.
Выбирал его максимальную скорость такой, чтобы он не прыгал по
экрану. Скорость остальных объектов интерполировал относительно
этой скорости (а не относительно 0). Получалось, если присмотрется, что не этот разгоняется, а те замедляются. А выглядит хорошо, все плавно, без дерганий.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
4-1086534421
akvilon
2004-06-06 19:07
2004.07.18
Как измерить длину текстовой строки (в пикселах)


1-1089025841
killer
2004-07-05 15:10
2004.07.18
Раскрыто ли PopupMenu


3-1087994111
Николай
2004-06-23 16:35
2004.07.18
Сохранение изменений


1-1089003161
ai
2004-07-05 08:52
2004.07.18
Quick Report: как изменять разрешение при печати?


3-1087998414
AlexG
2004-06-23 17:46
2004.07.18
Сохранение активности программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский