|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
||||||
Система координат и ее вращение. OpenGl и C++ Builder09.05.2011, 00:01. Показов 9576. Ответов 14
Метки нет (Все метки)
пишу диплом на C++ с использованием openGL. Программа должна строить графики, поверхности первого и второго порядка в 3d-пространстве.
Для начала мне нужно нарисовать систему координат. вот на этом я и застопорилась(( Систему координат она то рисует, но не так как мне надо. надо чтобы она была нарисована по центру экрана и выглядела приблизительно так: https://www.cyberforum.ru/atta... 1304883244.
еще надо, чтобы по одновременному нажатию левой кнопки мыши и по расположению курсора я могла вращать всю сцену. Делала это с помощью glaux.lib (нашла на одном сайте), но у меня не определяет эти функции. Если есть какой другой способ, подскажите. Файлы скачала все и подключила (glaux.lib, glaux.h, glaux.h) . Не знаю в чем дело, выдает ошибки: [Linker Error] Unresolved external 'auxInitPosition' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxInitDisplayMode' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxInitWindowA' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxIdleFunc' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxReshapeFunc' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxKeyFunc' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxMouseFunc' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxSwapBuffers' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ [Linker Error] Unresolved external 'auxMainLoop' referenced from D:\STUDY\3D\NEWFORMUNIT.OBJ Помогите, люди добрые, кто чем может, иначе мне, бедной студентки и диплома не написать и головы не сносить!(( Буду очень благодарна!!
0
|
||||||
| 09.05.2011, 00:01 | |
|
Ответы с готовыми решениями:
14
Система координат в opengl Система координат OpenGL Система координат в Qt OpenGL |
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
||
| 09.05.2011, 01:12 [ТС] | ||
|
"Функция glFrustum строит матрицу перспективного проецирования. Параметры (left, bottom, znear) и (right, top, znear) определяют координаты точки на ближней плоскости отсечения, которые отображаются в левый нижний и правый верхний углы окна при условии, что наблюдатель расположен в точке (0, 0, 0). Параметр zfar определяет расположение дальней плоскости отсечения."
0
|
||
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
|
| 09.05.2011, 02:56 [ТС] | |
|
я, наверно, неправильно выразилась.
имела ввиду, если объект маленький, то программа должна сама увеличивать масштаб (т е как бы растягивать систему координат) и наоборот. а как насчет остальных вопросов? кто-нибудь знает и может что подсказать?
0
|
|
|
|
|
| 12.05.2011, 18:16 | |
|
mal1na, если объекты 3д, то, по-моему, проще и реальнее использовать перспективную проекцию, которую достаточно просто создать ф-ией gluPrespective.
А если есть перспектива, то достаточно приближать/отдалять камеру от объекта и тем самым регулировать масштаб. Найти положение камеры достаточно просто если предворительно строить все графики в центре сцены. Самая далёкая от центра вершина + постоянный запас и будет расстояние на которое нужно отодвинуть камеру. Тем более последующее вращение тоже будет намного проще. И ещё: забейте на глут есть же окна!!
1
|
|
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
|
| 12.05.2011, 22:30 [ТС] | |
|
snake32, да, я уже так и сделала. просто рассматривала разные способы, а именно меня интересовало как при помощи курсора мыши и нажатии левой клавиши вертеть изображение. с этим разобралась.
Вот только вопрос, как строить графики и объекты в 3д по координатам, которые задает сам пользователь. делаю так. считываю координаты со стринггрида. перевожу в координаты Opengl и забиваю в массив. и с помощью ф-ции glDrawElements рисую (т к эта функция рисует по массиву вершин). но что-то не то выходит. (вращать и приближать не могу. т к закрашивает сцену цветом объекта, объект пропадает.а потом и вовсе ошибка) может знаете, в чем дело?
0
|
|
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
||||||||||||||||||||||||||
| 12.05.2011, 23:09 [ТС] | ||||||||||||||||||||||||||
|
ошибка выскакивает когда меняю угол обзора или вращаю. или увеличиваю сцену (приближаю координату расположения глаза пользователя).
вот код:
в чем может быть дело?
0
|
||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
|||||||
| 12.05.2011, 23:20 [ТС] | |||||||
|
и еще...
есть ф-ция отображения сцены на экране:
у меня пока получается либо система координат (вызываю Display() ) либо объект (тогда создаю для объекта DisplayObject() аналогичную Display() только вместо CoorDraw() ставлю DrawObject() ). Возможно такое осуществить, чтобы на сцене добавлялось множество разные объектов, графиков, если изначальное их количество я не знаю? как мне тогда объявить массивы вершин объектов. если я не знаю сколько их будет? Добавлено через 1 минуту
0
|
|||||||
|
|
|||||||||||||||||
| 13.05.2011, 00:13 | |||||||||||||||||
|
потом добавляете список/массив элементами которого будут такие объекты далее перебираете все элементы и рисуете
Вместо glDrawElements используйте glDrawArrays - нет мароки с индексами, которые сейчас вам ни к чему. http://opengl.gamedev.ru/doc/?func=glDrawArrays Добавлено через 3 минуты
![]() Побитовое или там должно быть
0
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
|
| 13.05.2011, 00:40 [ТС] | |
|
snake32, я так понимаю, прорисовка добавленных объектов будет происходить только при вызове ф-ции Display.
т е если я хочу нарисовать сист координат - нажимаю на кнопку1 (вызывается Display) хочу нарисовать куб - нажимаю на кнопку2 - и опять вызываю Display? хочу нарисовать просто график по точкам , нажимаю кнопку3 - и снова Display? т е ее придется каждый раз перерисовать, если я добавляю новый объект? и как мне передать массив координат в этот класс? ведь для рисования куба и , например, графика, отображающего точками, используется не совсем одинаковые ф-ции в opengl. В общем я в конец запуталась((((( а за GlDrawArrays спасибо! насчет последнего. содрала на каком-то форуме. и работает, подключила только библиотеку iso646.h
0
|
|
|
|
|||||||
| 13.05.2011, 01:36 | |||||||
|
mal1na, это нормально когда прорисовка только в одной ф-ии.
для каждого графика или куба нужно задавать свои colors и vertices
1
|
|||||||
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 20
|
||
| 13.05.2011, 20:46 [ТС] | ||
|
snake32, в принципе все понятно. спасибо Вам за информацию.
0
|
||
| 13.05.2011, 20:46 | |
|
Помогаю со студенческими работами здесь
15
OpenGL / C++, вращение (OpenGL C++) Вращение и частицы
Вращение в TaoFramework Opengl Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|