Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: mark_o_polo от Апрель 05, 2010, 16:57



Название: OpenGL - при изменении окна круглые объекты становятся сплюснутыми.
Отправлено: 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);
Ъ


Название: Re: OpenGL - при изменении окна круглые объекты становятся сплюснутыми.
Отправлено: ecspertiza от Апрель 05, 2010, 18:49
вроде так

gluPerspective(45.0f,(GLfloat)cx/(GLfloat)cy,0.1f,100.0f);