Russian Qt Forum
Ноябрь 22, 2024, 13:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
OpenGL
>
Прокрутка и область рисования
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Прокрутка и область рисования (Прочитано 11023 раз)
Sahsa
Гость
Прокрутка и область рисования
«
:
Октябрь 31, 2015, 20:16 »
1) как в opengl ограничить область рисования?
2) как сделать скрул бар для opengl. Отрысовка происходит в отдельном классе и создается GLWindow и все это запихиваается в QDockWidget.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #1 :
Ноябрь 02, 2015, 10:03 »
1) В opengl область рисования и так ограничена по каждой координате [-1.0..1.0]. Всё, что лежит за пределами этой области не прорисовывается. Вы же управляете преобразованием верши с помощью 3х матриц: проецирования, представления и viewport.
2) QScrollBar либо рисовать прямо в gl. При прокрутке модифицировать матрицу представления.
Записан
Sahsa
Гость
Re: Прокрутка и область рисования
«
Ответ #2 :
Ноябрь 02, 2015, 10:20 »
А можно более подробно про скроллинг?)
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #3 :
Ноябрь 02, 2015, 14:34 »
Поясните, что за скролл вам нужен. Я вижу 2 варианта:
1) QGLWidget не влезает в QDockWidget и вам необходимо скролить именно виджет
2) Вам нужно скролить изображение, которое рисует QGLWidget
Записан
Sahsa
Гость
Re: Прокрутка и область рисования
«
Ответ #4 :
Ноябрь 04, 2015, 09:57 »
в QDockWidget добавляем GLWindows и в окне QDockWidget нужны полосы прокрутки, для быстрого перемещения
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Прокрутка и область рисования
«
Ответ #5 :
Ноябрь 05, 2015, 07:41 »
Собственно скроллинг делается добавлением смещения в матрицу OpenGL (обычно MODEL_VIEW_MATRIX) которая заполняется при каждом рисовании. Скроллбары - вот не знаю можно ли их добавить прямо в GLWindow. Во всяком случае QScrollArea в доке и GLWindow как виджет QScrollArea работать будет.
Вообще здесь проще показать на тестовом примере чем словами. Выкладывайте (в zip), но учтите - версия Qt пятерка (QOpenGLWindow)
Записан
Sahsa
Гость
Re: Прокрутка и область рисования
«
Ответ #6 :
Ноябрь 09, 2015, 09:59 »
создается клас
class GLWindows : public QGLWidget
в нем переопределяются методы
void initializeGL();
void resizeGL(int nWidth, int nHeight);
void paintGL();
и у меня не получается добавить скролинг при помощи ползунков
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #7 :
Ноябрь 10, 2015, 07:44 »
Вообще, скорее всего, всё зависит от реализации вашего метода paintGL. Вам необходимо определиться, как значения скролбара будут переводиться в координаты OpenGL.
Если вы реализовывали свой класс таким образом, что в initializeGL() не происходит операций с матрицами, в resizeGL() происходит модифицирование только матрицы проекции, а в paintGL() идёт работа с матрицей моделирования + рисование, тогда:
Берём, после приведения матрицы модели к единичной вставляем смещение её на то расстояние, которое вам необходимо.
Для этого необходимо вызвать метод glTranslate, либо, если вы работаете с классом матриц QMatrix4x4::translate
Записан
Sahsa
Гость
Re: Прокрутка и область рисования
«
Ответ #8 :
Ноябрь 10, 2015, 09:10 »
а можно хоть какой нить пример, так как с openGL пока не очень дружу
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #9 :
Ноябрь 10, 2015, 09:15 »
Думаю,
тут
вы для себя что-нибудь найдёте
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #10 :
Ноябрь 10, 2015, 09:18 »
Перемещение конкретно
здесь
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #11 :
Ноябрь 10, 2015, 09:30 »
Цитата: __Heaven__ от Ноябрь 10, 2015, 09:18
Перемещение конкретно
здесь
Правда, тут используется 2D и не используются матрицы. Может вам и не подойдет.
Вообще, с вашей стороны нужно больше кода. дайте реализацию этих 3х методов.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Прокрутка и область рисования
«
Ответ #12 :
Ноябрь 10, 2015, 09:36 »
Я учился по книге:
http://www.ozon.ru/context/detail/id/2639015/
Первые 4 главы дадут понимание вашей задачи.
Записан
Sahsa
Гость
Re: Прокрутка и область рисования
«
Ответ #13 :
Ноябрь 10, 2015, 09:45 »
спасибо, буду смотреть, возникнут вопросы напишу.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...