Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Моделирование движения точки 
:(
    Опции темы
shutffl
Дата 19.2.2010, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 18.8.2008

Репутация: нет
Всего: 3



Доброго времени суток!!

Подскажите, пожалуйста, каким образом можно реализовать движение точки в пространстве(!!)?? Нужно ли использовать OpenGL(только OpenGL, DirectX не интересует) или только 2D с вычислением по оси Z?? Задача стоит достаточно простая: есть куб; в кубе движется точка; координаты точки всегда известны; грань куба известна. Надо смоделировать движение этой точки в заданном кубе, предусмотреть возможность вращения куба и траектории движения точки, приближение и удаление к/из куба..

Никак не могу понять, надо OpenGL использовать или все же нет?? Реализация планируется на Qt .. Можно ли сделать именно точку в OpenGL, или нужно рисовать сферу с  необходимым радиусом??

Заранее спасибо!!
--------------------
shadowmoon
PM MAIL   Вверх
cardinal
Дата 19.2.2010, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата(shutffl @  18.2.2010,  22:00 Найти цитируемый пост)
Подскажите, пожалуйста, каким образом можно реализовать движение точки в пространстве(!!)??

Почитай тут
http://forum.vingrad.ru/forum/topic-22163/...25B0/index.html
теперь осталось повторить нечто похожее с помощью OpenGL... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
shutffl
Дата 19.2.2010, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 18.8.2008

Репутация: нет
Всего: 3



Спасибо, посмотрю.. То есть все таки OpenGL?? ((,
--------------------
shadowmoon
PM MAIL   Вверх
Rickert
Дата 19.2.2010, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Цитата(shutffl @  19.2.2010,  00:00 Найти цитируемый пост)
Подскажите, пожалуйста, каким образом можно реализовать движение точки в пространстве(!!)?? Нужно ли использовать OpenGL(только OpenGL, DirectX не интересует) или только 2D с вычислением по оси Z?

shutffl, что вы хотите спросить про OpenGL? Это библиотека которая работает с вашей видео картой и позволяет выводить изображение на экран. Если вы хотите выводить точку на экран - значит надо использовать что-то чтобы её выводило, логично? Вас не поймёшь: DirectX нельзя использовать, звёзды не рекомендуют и тут же спрашиваете: а можно ли использовать OpenGL? Вы представляете зачем он нужен?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
shutffl
Дата 19.2.2010, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 18.8.2008

Репутация: нет
Всего: 3



Я хочу узнать, можно ли средствами OpenGL решить эту конкретную задачу?? OpenGL для меня новая библиотека.. И, ради экономии времени, я и интересуюсь: для данной задачи необходим OpenGL или нет??
На счет DirectX.. Хм.. Да, его вера не позволяет использовать, если вы об этом..

Судя по описанию и примерам с opengl.org и qt.nokia.com, мою задачу можно попробовать решить с помощью OpenGL.. Хочется проще реализовать перерисовку при вращении, например, а не расчет всех координат при использовании 2D-моделирования..

То есть, немного упрощая условие: нужно построить прозрачный куб с известной величиной ребра; а далее - организовать в нем отрисовку траектории движения некоторого тела.. При этом должна быть возможность изменять положение куба в пространстве и приближать/удалять камеру обзора(zoom).. Естественно траектория тоже должна перерисовываться в зависимости от новых параметров(вращение, zoom).. Считайте это моделированием движения одной(!!) молекулы газа в некотором объеме(кубе)..

Некоторое время назад, когда просто пролистывал документацию по OpenGL, мне показалось, что реализовать алгоритм не составит труда.. Я думал: "Чего проще?? Координаты вершин куба я знаю.. Координаты точки - тоже.. Просто нарисую прямые в 3D-пространстве, а потом начну рисовать траекторию.." А оказалось, что не все так просто.. Примеры, которые я видел на вышеуказанных сайтах, рисуют куб вместе с текстурами.. А мне нужно "полый" куб с рисованием внутри него..
--------------------
shadowmoon
PM MAIL   Вверх
Rickert
Дата 19.2.2010, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Вы по всей видимости пытаетесь хватать по-верхушкам и не вникаете в суть. Текстурирование (отображение картинок на плоскостях куба) совсем не обязательно. Т.к. вам нужен полый куб, вы для начала можете его нарисовать в виде линий.
Код
glColor3ub(255, 0, 0);
glBegin(GL_LINES);
  glVertex3f(0.0f, 0.0f, 0.0f);
  glVertex3f(0.0f, 10.0f, 0.0f);
glEnd();

Самый простой и грубый пример отрисовать линию синего цвета.
Теперь говоря о траекториях, как бы я это реализовывал: создал бы список в который заносил положение частицы через определённый интервал времени и постоянно его отрисовывал.
Движение частицы внутри куба ограничено, следовательно и положение всей траектории будет ограничено кубом.
Теперь вопрос такой:

Цитата(shutffl @  19.2.2010,  04:38 Найти цитируемый пост)
ри этом должна быть возможность изменять положение куба в пространстве и приближать/удалять камеру обзора(zoom).. Естественно траектория тоже должна перерисовываться в зависимости от новых параметров(вращение, zoom).. Считайте это моделированием движения одной(!!) молекулы газа в некотором объеме(кубе)..

Вот у вас куб, а вот внутри летит частица, не касаясь его граней. В этот момент куб повернулся. Вопрос: частица должна повернуться с ним или продолжить лететь в том же направлении? Т.е. вам нужно вращение всей сцены или только именно куба? Если первое - то это легко организовать вращением мировой матрицы. Если второе, то возникает другой вопрос: а вращать ли с кубом траекторию полёта частицы? А то получится что в какой-то момент траектория выйдет за границы куба.
Все расчёты столкновений и поведения простые, если требуется вращать частицу с кубом, а вот если они должны быть самостоятельны, то уже немного сложнее.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
shutffl
Дата 19.2.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 18.8.2008

Репутация: нет
Всего: 3



Rickert, спасибо за столь развернутый ответ!! Очень помогло в понимании!! Буду думать..


Цитата(Rickert @  19.2.2010,  12:30 Найти цитируемый пост)
Вопрос: частица должна повернуться с ним или продолжить лететь в том же направлении?

Частица должна изменить свое движение вместе с кубом.. То есть изменить надо всю сцену..
--------------------
shadowmoon
PM MAIL   Вверх
Rickert
Дата 20.2.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Тогда это просто. Перед функциями отображения объектов вы запоминаете текущую матрицу и делаете поворот:
Код
glPushMatrix();
glRotatef(angle, 0.0, 1.0, 0.0);

После тогда как всё нарисовали, возвращаете значение матрицы:
Код
glPopMatrix()



--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
shutffl
Дата 20.2.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 18.8.2008

Репутация: нет
Всего: 3



Еще раз спасибо!! Буду пробовать!!
--------------------
shadowmoon
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.