![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| shutffl |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 18.8.2008 Репутация: нет Всего: 3 |
Доброго времени суток!!
Подскажите, пожалуйста, каким образом можно реализовать движение точки в пространстве(!!)?? Нужно ли использовать OpenGL(только OpenGL, DirectX не интересует) или только 2D с вычислением по оси Z?? Задача стоит достаточно простая: есть куб; в кубе движется точка; координаты точки всегда известны; грань куба известна. Надо смоделировать движение этой точки в заданном кубе, предусмотреть возможность вращения куба и траектории движения точки, приближение и удаление к/из куба.. Никак не могу понять, надо OpenGL использовать или все же нет?? Реализация планируется на Qt .. Можно ли сделать именно точку в OpenGL, или нужно рисовать сферу с необходимым радиусом?? Заранее спасибо!! --------------------
shadowmoon |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Почитай тут http://forum.vingrad.ru/forum/topic-22163/...25B0/index.html теперь осталось повторить нечто похожее с помощью OpenGL... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| shutffl |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 18.8.2008 Репутация: нет Всего: 3 |
Спасибо, посмотрю.. То есть все таки OpenGL?? ((,
--------------------
shadowmoon |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
shutffl, что вы хотите спросить про OpenGL? Это библиотека которая работает с вашей видео картой и позволяет выводить изображение на экран. Если вы хотите выводить точку на экран - значит надо использовать что-то чтобы её выводило, логично? Вас не поймёшь: DirectX нельзя использовать, звёзды не рекомендуют и тут же спрашиваете: а можно ли использовать OpenGL? Вы представляете зачем он нужен? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| shutffl |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 18.8.2008 Репутация: нет Всего: 3 |
Я хочу узнать, можно ли средствами OpenGL решить эту конкретную задачу?? OpenGL для меня новая библиотека.. И, ради экономии времени, я и интересуюсь: для данной задачи необходим OpenGL или нет??
На счет DirectX.. Хм.. Да, его вера не позволяет использовать, если вы об этом.. Судя по описанию и примерам с opengl.org и qt.nokia.com, мою задачу можно попробовать решить с помощью OpenGL.. Хочется проще реализовать перерисовку при вращении, например, а не расчет всех координат при использовании 2D-моделирования.. То есть, немного упрощая условие: нужно построить прозрачный куб с известной величиной ребра; а далее - организовать в нем отрисовку траектории движения некоторого тела.. При этом должна быть возможность изменять положение куба в пространстве и приближать/удалять камеру обзора(zoom).. Естественно траектория тоже должна перерисовываться в зависимости от новых параметров(вращение, zoom).. Считайте это моделированием движения одной(!!) молекулы газа в некотором объеме(кубе).. Некоторое время назад, когда просто пролистывал документацию по OpenGL, мне показалось, что реализовать алгоритм не составит труда.. Я думал: "Чего проще?? Координаты вершин куба я знаю.. Координаты точки - тоже.. Просто нарисую прямые в 3D-пространстве, а потом начну рисовать траекторию.." А оказалось, что не все так просто.. Примеры, которые я видел на вышеуказанных сайтах, рисуют куб вместе с текстурами.. А мне нужно "полый" куб с рисованием внутри него.. --------------------
shadowmoon |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Вы по всей видимости пытаетесь хватать по-верхушкам и не вникаете в суть. Текстурирование (отображение картинок на плоскостях куба) совсем не обязательно. Т.к. вам нужен полый куб, вы для начала можете его нарисовать в виде линий.
Самый простой и грубый пример отрисовать линию синего цвета. Теперь говоря о траекториях, как бы я это реализовывал: создал бы список в который заносил положение частицы через определённый интервал времени и постоянно его отрисовывал. Движение частицы внутри куба ограничено, следовательно и положение всей траектории будет ограничено кубом. Теперь вопрос такой: Вот у вас куб, а вот внутри летит частица, не касаясь его граней. В этот момент куб повернулся. Вопрос: частица должна повернуться с ним или продолжить лететь в том же направлении? Т.е. вам нужно вращение всей сцены или только именно куба? Если первое - то это легко организовать вращением мировой матрицы. Если второе, то возникает другой вопрос: а вращать ли с кубом траекторию полёта частицы? А то получится что в какой-то момент траектория выйдет за границы куба. Все расчёты столкновений и поведения простые, если требуется вращать частицу с кубом, а вот если они должны быть самостоятельны, то уже немного сложнее. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| shutffl |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 18.8.2008 Репутация: нет Всего: 3 |
Rickert, спасибо за столь развернутый ответ!! Очень помогло в понимании!! Буду думать..
Частица должна изменить свое движение вместе с кубом.. То есть изменить надо всю сцену.. --------------------
shadowmoon |
|||
|
||||
| Rickert |
|
||||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 2 Всего: 52 |
Тогда это просто. Перед функциями отображения объектов вы запоминаете текущую матрицу и делаете поворот:
После тогда как всё нарисовали, возвращаете значение матрицы:
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||
|
|||||
| shutffl |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 18.8.2008 Репутация: нет Всего: 3 |
Еще раз спасибо!! Буду пробовать!!
--------------------
shadowmoon |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |