现在的位置: 首页 > 综合 > 正文

OpenGL画三角形

2013年08月18日 ⁄ 综合 ⁄ 共 835字 ⁄ 字号 评论关闭

修改paintGL函数:

void NeHeWidget::paintGL()
{
    //清楚屏幕和深度缓存
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    //重置当前的模型观察矩阵
    glLoadIdentity();
    glTranslatef(-1.5, 0.0, -6.0);
    //开始绘制三角形
    glBegin(GL_TRIANGLES);
    glVertex3f(0.0, 0.0, 0.0);
    glVertex3f(-1.0, -1.0, 0.0);
    glVertex3f(1.0, -1.0, 0.0);
    glEnd();

}

 

关于glLoadIdentity()与glTranslatef(x, y, z)函数:

 

glLoadIdentity()

将当前的用户坐标系的原点移到了屏幕中心:类似于一个复位操作
1.X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。
2.OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。
3.中心左面的坐标值是负值,右面是正值。
   移向屏幕顶端是正值,移向屏幕底端是负值。
   移入屏幕深处是负值,移出屏幕则是正值。

 

glTranslatef(x, y, z)

沿着 X, Y 和 Z 轴移动。

注意在glTranslatef(x, y, z)中,当您移动的时候,您并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。其作用就是将你绘点坐标的原点在当前原点的基础上平移一个(x,y,z)向量。

 

glLoadIdentity();         

glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(1.0f,0.0f, 0.0f);
glVertex3f(0.0f,1.0f, 0.0f);
glEnd();

 

 

相关程序代码:

 OpenGL_triangle

抱歉!评论已关闭.