Форум программистов, компьютерный форум CyberForum.ru

Qt

Войти
Регистрация
Восстановить пароль
 
razervip
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 55
#1

Перерисовка объектов OpenGL - C++ Qt

09.01.2017, 00:09. Просмотров 140. Ответов 0
Метки нет (Все метки)

Здравствуйте.
Подскажите, пожалуйста, каким образом прописать перерисовку объекта
Тут рассчитывается значение contact:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
void GLWidget::touching(int trancleted){
 
    radius1 = 4.0;
    radius2 = 2.0;
    tooth_size_1 = 0.7;
    tooth_size_2 = 0.7;
 
    if((radius1 - (radius2 - tooth_size_2 + trancleted )) > 0 && (radius1 - (radius2 - tooth_size_2 + trancleted)) < 3)
        contact = true; // касается
    else
        contact = false; // НЕ касается
    emit touchingGears(contact);
}
Вот тут рисуются объекты:
C++ (Qt)
1
2
3
4
5
6
7
8
9
void GLWidget::initializeGL(){
 
    static const GLfloat lightPos[4] = { 5.0f, 5.0f, 10.0f, 1.0f };
    static const GLfloat reflectance1[4] = { 0.0f, 0.0f, 1.0f, 0.0f }; // синяя
    static const GLfloat reflectance2[4] = { 1.0f, 1.0f, 1.0f, 0.0f }; // белая
    static const GLfloat reflectance3[4] = { 0.0f, 0.0f, 1.0f, 0.0f }; // синяя2
 
    ...
}
Необходимо при contact = true перерисовывать reflectance2 синим цветом, а при contact = false обратно в белый..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 00:09     Перерисовка объектов OpenGL
Посмотрите здесь:

C++ Qt Неправильная перерисовка QLabel
C++ Qt Обновление виджета (приложения) (перерисовка)
C++ Qt Перерисовка сцены раз в секунду
Перерисовка в цикле C++ Qt
C++ Qt Перерисовка рамки окна
Scroll и перерисовка в таблице C++ Qt
Не работает перерисовка таблицы C++ Qt
C++ Qt Перерисовка наследника QGraphicsItem
C++ Qt Перерисовка изображение по команде
QGridLayout перерисовка C++ Qt
Перерисовка C++ Qt
C++ Qt Перерисовка QLabel

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru