|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.08.2013, 16:39 | #1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Путь в OpenGL через Qt C++
Привет всем!
В этой теме я буду выкладывать разные примеры через которые я познаю OpenGL. Конечная цель мне неизвестна. О разработке движка, игры или САПР я ещё даже не думаю. Пока мне просто интересно, что-то создавать, а потом приближать-отдалять, крутить-вертеть Главное, что рядом мощь С++ и библиотеки Qt. Первое с чего я начал - это нашёл статью с примером кода. Ссылка: http://www.gamedev.ru/code/articles/OpenGL_Qt4 Если честно, то я далеко не всё понял, но постепенно буду разбираться, создавая короткие примеры на базе найденного кода. Надеюсь на советы и замечания форумчан, и что данная тема кому-то пригодится. |
16.08.2013, 16:40 | #2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Установка инструментария
- скачиваем и устанавливаем MinGW (в папку по умолчанию: C:\MinGW): http://sourceforge.net/projects/mingw/ - скачиваем и устанавливаем "Qt libraries 4.8.5 for Windows (minGW 4.4, 317 MB)", ссылка: http://qt-project.org/downloads - скачиваем и устанавливаем "Qt Creator 2.8.0 for Windows (52 MB)" (IDE-редактор): http://qt-project.org/downloads |
16.08.2013, 16:43 | #3 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Создание пустого проекта в Qt
- запускаем Qt Creator - в меню выбираем: File -> New file or Project... - выбираем "Other Project" и "Empty Qt Project" - нажимаем кнопку "Choose..." - в поле "Name" вводим имя проекта: HelloWorld - указываем путь размещения проекта в поле "Create in" - нажимаем кнопку "Next" - у меня появляется следующее окно, где я убираю галочку "Microsoft Visual C++": - нажимаем кнопку "Next" - нажимаем кнопку "Finish" - кликаем правой кнопкой мыши по имени проекта: - выбираем "Add New..." - в открывшемся окне выбираем "С++" "С++ Source File", как на рисунке: - нажимаем кнопку "Choose..." - в поле "Name" вводим имя файла: main - нажимаем кнопку "Next" - нажимаем кнопку "Finish" - добавляем в файл ".pro" следующую строку: QT += opengl Выглядит так: |
16.08.2013, 16:44 | #4 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
- в файл main.cpp копируем следующий код:
Код:
|
16.08.2013, 16:45 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Работа с Qt Creator
- в меню выбираем "Build" -> "Run" либо нажимаем "Cltr+R" либо зелёный треугольник на панели инструментов - в окне "Application Output" должен появиться результат: Hello, World! Если приложение не запустилось, то - в меню нажимаем "Tools" -> "Options..." - справа выбираем "Build & Run" - выбираем вкладку "Kits", у меня окно выглядит так: Насколько я помню у меня в "Kits" не было ни "Microsoft Visual C++" ни "MinGW", а мне нужен был "MinGW" и я его добавил вручную. Для этого: - нажимаем кнопку "Add" - в поле "Name" вводим имя, например (в моём случае): MinGW x86 32bit - выбираем в поле "Compiler" -> (в моём случае) "MinGW x86 32bit" (если нет, то нажимаем кнопку "Manage..." напротив поля "Compiler"; добавляем компилятор, нажав кнопку "Add", в моём случае это C:/MinGW/bin/g++.exe) - напротив поля "Debbuger" нажимаем кнопку "Edit" и указываем путь до отладчика, в моём случае это "C:/MinGW/bin/gdb.exe" - в поле "Qt version" выбираем "Qt 4.8.5 (4.8.5_MinGw") (если нет, то нажимаем кнопку "Manage..." напротив поля "Qt version; добавляем qmake, нажав кнопку "Add", в моём случае это C:/Qt/4.8.5_MinGw/bin/qmake.exe) - нажимаем кнопку "OK" - ставим точку останова, для этого кликаем на отмеченном месте, как показано на рисунке: - в меню выбираем "Debug" -> "Start Debugging" -> "Start Debugging" либо нажимаем "F5" либо зелёный треугольник c жуком на панели инструментов У меня обычно появляется следующее сообщение, но я нажимаю "Continue Anyway" - на отмеченном месте появляется стрелочка: - нажимаем F10, чтобы выполнять программу в пошаговом режиме (либо F11, чтобы зайти внутрь функции) |
16.08.2013, 16:46 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Икосаэдр
Этот код полностью взят отсюда (там все подробные пояснения к коду): http://www.gamedev.ru/code/articles/OpenGL_Qt4 Икосаэдр можно вращать с помощью мыши (и стрелок на клавиатуре), приближать и отдалять с помощью колёсика мыши. - создаём пустой проект c именем: Icosahedron - добавляем класс: Class name: "Scene3D" Base class: QGLWidget Type information: Inherits QWidget Рассмотрим, как добавить класс. |
16.08.2013, 16:47 | #7 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Добавление класса
- кликаем правой кнопкой мыши по имени проекта: - выбираем "Add New..." - в открывшемся окне выбираем "С++" "С++ Class", как на рисунке: - нажимаем кнопку "Choose..." - в поле "Class name" вводим имя класса - в поле "Base class" вводим имя класса-родителя - выбираем "Type information" - нажимаем кнопку "Next" - нажимаем кнопку "Finish" |
16.08.2013, 16:58 | #8 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Копируем следующий код из прикреплённых файлов в соответствующие файлы проекта.
|
16.08.2013, 17:00 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Координатные оси, которые можно вращать, приближать и отдалять
Этот проект тот же самый, что и предыдущий, в этом я удалил всё что связано с икосаэдром, а оставил только оси координат. Координатные оси можно вращать, приближать и отдалять. - создаём пустой проект c именем: Axes - добавляем класс со следующими атрибутами: Class name: "Scene3D" Base class: QGLWidget Type information: Inherits QWidget Копируем следующий код из прикреплённых файлов в соответствующие файлы проекта. |
16.08.2013, 17:03 | #10 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Построение отрезка по двум введённым координатам в 3D-пространстве
Этот проект похож на предыдущий. Я добавил возможность задавать точки отрезка. Координатные оси и отрезок можно вращать, приближать и отдалять. - создаём пустой проект c именем: Line - добавляем класс "MainWindow" со следующими атрибутами: Class name: "MainWindow" Base class: QMainWindow Type information: none - добавляем класс "Scene3D" со следующими атрибутами: Class name: "Scene3D" Base class: QGLWidget Type information: Inherits QWidget Копируем следующий код из прикреплённых файлов в соответствующие файлы проекта. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скриншот экрана через OpenGL | UltraCoder | Qt и кроссплатформенное программирование С/С++ | 0 | 08.08.2012 17:46 |
Путь к IB через программу | svyatoi777 | Помощь студентам | 0 | 25.03.2011 19:23 |
Загрузка в Image через путь, выбранный в ShellListView | artemavd | Общие вопросы Delphi | 1 | 20.08.2010 19:12 |
Вывод картинки через OpenGL | KIV_95 | Помощь студентам | 1 | 15.08.2010 12:18 |
Как программно узнать путь к базе.Соединение через adoconnection. | Moel | БД в Delphi | 1 | 26.10.2007 08:32 |