Russian Qt Forum
Сентябрь 25, 2024, 14:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL - при изменении окна круглые объекты становятся сплюснутыми.  (Прочитано 2386 раз)
mark_o_polo
Гость
« : Апрель 05, 2010, 16:57 »

Рисую в QGLWidgete. При изменении размеров окна круглые объекты становятся сплюснутыми, что недопустимо. Есть ли возможность уменьшая размеры окна, чтобы размеры объектов оставались пропорциональными (т.е. круглые оставались круглыми). 
Код:
void Potok3DView::resizeGL(int cx, int cy)
{
 glViewport(0, 0, cx, cy);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

     
    GLdouble aspect = 1;
    if (cy)
        aspect = cx / cy;

    double maxz = parent_wnd -> r_ + w + l + h;

    gluPerspective(90, aspect, (parent_wnd->r_-1)/10, maxz);
    double eyex =  parent_wnd -> r_ * sin(parent_wnd -> theta_) * cos(parent_wnd -> phi_);
    double eyey =  parent_wnd -> r_ * sin(parent_wnd -> theta_) * sin(parent_wnd -> phi_);
    double eyez =  parent_wnd -> r_ * cos(parent_wnd -> theta_) ;

    gluLookAt(eyex, eyey, eyez,  // eye point
              0, 0, 0,  // center of scene
              0, 0, top_z); // top vector

    glMatrixMode(GL_MODELVIEW);
Ъ
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Апрель 05, 2010, 18:49 »

вроде так

gluPerspective(45.0f,(GLfloat)cx/(GLfloat)cy,0.1f,100.0f);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 23.