openGL构造教室(4)

2020-02-22 10:51

虚拟现实与数据可视化课程作业董元 22011207

glColor3f(0.8f,0.8f, 0.8f); glBegin(GL_QUADS);

glNormal3f(0.0f, 0.0f, 1.0f);

glVertex3f(-50.0f, 30.0f, -80.0f); glVertex3f(-50.0f, -30.0f, -80.0f); glVertex3f( 50.0f, -30.0f, -80.0f);

glVertex3f( 50.0f, 30.0f, -80.0f);

glEnd(); glBegin(GL_QUADS);

glNormal3f(0.0f, 0.0f, -1.0f);

glVertex3f( 50.0f, 30.0f, 20.0f); glVertex3f( 50.0f, -30.0f, 20.0f); glVertex3f(-50.0f, -30.0f, 20.0f); glVertex3f(-50.0f, 30.0f, 20.0f); glEnd();

glBegin(GL_QUADS);

glNormal3f( 1.0f, 0.0f, 0.0f);

glVertex3f(-50.0f, 30.0f, 20.0f); glVertex3f(-50.0f, -30.0f, 20.0f); glVertex3f(-50.0f, -30.0f, -80.0f); glVertex3f(-50.0f, 30.0f, -80.0f); glEnd();

glBegin(GL_QUADS);

glNormal3f(-1.0f, 0.0f, 0.0f);

glVertex3f( 50.0f, 30.0f, -80.0f); glVertex3f( 50.0f, -30.0f, -80.0f); glVertex3f( 50.0f, -30.0f, 20.0f);

glVertex3f( 50.0f, 30.0f, 20.0f);

glEnd();

//------------------------------绘制房间结束

------------------------------------------------//

//------------------------------开始绘制房间两侧石柱-----------------------------------------// int j=0; for(;j<2;j++) 石柱

{ glBegin(GL_QUADS);

glNormal3f(0.0f, 0.0f, -1.0f);

//绘制后墙面

//绘制前墙面

//绘制左墙面

//绘制右墙面

//绘制教室右侧的

//石柱后面

16 / 40

虚拟现实与数据可视化课程作业董元 22011207

glVertex3f( 50.0f, 30.0f, -40.0f+j*30); glVertex3f( 47.0f, 30.0f, -40.0f+j*30); glVertex3f( 47.0f, -30.0f, -40.0f+j*30);

glVertex3f( 50.0f, -30.0f, -40.0f+j*30);

glEnd();

glBegin(GL_QUADS); glNormal3f(-1.0f, 0.0f, 0.0f);

glVertex3f( 47.0f, 30.0f, -40.0f+j*30); glVertex3f( 47.0f, 30.0f, -36.0f+j*30); glVertex3f( 47.0f, -30.0f, -36.0f+j*30);

glVertex3f( 47.0f, -30.0f, -40.0f+j*30);

glEnd();

glBegin(GL_QUADS); glNormal3f(0.0f, 0.0f, 1.0f);

glVertex3f( 50.0f, 30.0f, -36.0f+j*30); glVertex3f( 47.0f, 30.0f, -36.0f+j*30); glVertex3f( 47.0f, -30.0f, -36.0f+j*30);

glVertex3f( 50.0f, -30.0f, -36.0f+j*30);

glEnd();

}

for( j=0;j<3;j++) 柱 { glBegin(GL_QUADS); glNormal3f(0.0f, 0.0f, -1.0f);

glVertex3f( -50.0f, 30.0f, -40.0f+j*28); glVertex3f( -47.0f, 30.0f, -40.0f+j*28); glVertex3f( -47.0f, -30.0f, -40.0f+j*28);

glVertex3f( -50.0f, -30.0f, -40.0f+j*28);

glEnd();

glBegin(GL_QUADS); glNormal3f(1.0f, 0.0f, 0.0f);

glVertex3f( -47.0f, 30.0f, -40.0f+j*28); glVertex3f( -47.0f, 30.0f, -36.0f+j*28); glVertex3f( -47.0f, -30.0f, -36.0f+j*28);

glVertex3f( -47.0f, -30.0f, -40.0f+j*28);

glEnd();

glBegin(GL_QUADS);

//石柱左面

//石柱前面

//绘制教室左侧石

//石柱后面

//石柱右面

17 / 40

虚拟现实与数据可视化课程作业董元 22011207

glNormal3f(0.0f, 0.0f, 1.0f); //石柱前面

glVertex3f( -50.0f, 30.0f, -36.0f+j*28); glVertex3f( -47.0f, 30.0f, -36.0f+j*28); glVertex3f( -47.0f, -30.0f, -36.0f+j*28); glVertex3f( -50.0f, -30.0f, -36.0f+j*28);

glEnd();

//------------------------------结束绘制房间两侧石柱-----------------------------------------// }

/***************函数名称:

DrawDesk************************************************************* ****************函数作用:绘制教室里的九张桌子和就张凳子****************************************/ void DrawDesk() {

glPushMatrix();

glColor3f(1,1,0.45);//桌子后面

glTranslatef(15.0f,-12.0f,-32.5f+i*17);//从原点平移 glScalef(11.0f,3.0f,0.3f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0);

18 / 40

}

GLuint i=0; for(;i<3;i++) {

glPushMatrix();//-----------------------no.1-------------------------------

glColor3f(1,1,0.45);//桌子上面

glTranslatef(15.0f,-10.0f,-30.0+i*17);// glScalef(13.0f,0.3f,5.0f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌子下面

glTranslatef(15.0f,-13.0f,-30.0+i*17);// glScalef(11.0f,0.3f,5.0f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix();

-----

虚拟现实与数据可视化课程作业董元 22011207

glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌子左面

glTranslatef(9.5f,-11.5f,-30.0f+i*17);//从原点平移 glScalef(0.3f,3.0f,5.0f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌子右面

glTranslatef(20.5f,-11.5f,-30.0f+i*17);//从原点平移 glScalef(0.3f,3.0f,5.0f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌腿一号

glTranslatef(10.0f,-17.0f,-32.5f+i*17);//从原点平移 glScalef(0.5f,8.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌腿二号

glTranslatef(10.0f,-17.0f,-28.5f+i*17);//从原点平移 glScalef(0.5f,8.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌腿三号

glTranslatef(20.0f,-17.0f,-32.5f+i*17);//从原点平移 glScalef(0.5f,8.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//桌腿四号

19 / 40

虚拟现实与数据可视化课程作业董元 22011207

glTranslatef(20.0f,-17.0f,-28.5f+i*17);//从原点平移 glScalef(0.5f,8.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//板凳上面

glTranslatef(15.0f,-15.0f,-25.0+i*17);//从原点平移 glScalef(9.5f,0.3f,3.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//板凳腿一号

glTranslatef(11.0f,-18.0f,-26.0f+i*17);//从原点平移 glScalef(0.5f,6.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//板凳腿二号

glTranslatef(11.0f,-18.0f,-24.0f+i*17);//从原点平移 glScalef(0.5f,6.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//板凳腿三号

glTranslatef(19.0f,-18.0f,-26.0f+i*17);//从原点平移 glScalef(0.5f,6.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0); glPopMatrix(); glPushMatrix();

glColor3f(1,1,0.45);//板凳腿四号

glTranslatef(19.0f,-18.0f,-24.0f+i*17);//从原点平移 glScalef(0.5f,6.0f,0.5f);//将立方体变成长方体

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,mat_amb_diff1); glutSolidCube(1.0);

20 / 40


openGL构造教室(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:品管基础知识测试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: