2022-01-13 17:19:08 索炜达电子 1082
文件编号:L51
文件大小:7.1M
代码行数:2036行(主程序)
开发环境:VS2019、OpenGL
猿创承诺:该源码均通过亲自测试可正常运行
简要概述:计算机图形学实验,用OpenGL实现三维空间,绘制三维房间、家具、房屋建筑等。OpenGL实现三维空间、方向转换、按键交互、含源代码、执行文件。
实现图形场景等包括:房屋、草坪、小路、天空、教学楼、树木、围墙、灯光、纹理;包括多种交互场景。室内绘制丰富。
用到的OpenGL 函数
glColor3f(blue); //设置颜色
glutSolidCube(size);//绘制正方体
glVertex3f(x, y, z);//设置点坐标
glLightfv(a,b,c); //设置光源
glTranslatef(x, y, z`)`;//平移函数
glScalef(x, y, z); //放大/缩小函数
glRotatef(angle, x, y, z);//绕轴旋转函数
glutSolidSphere(radius, slices, stacks);//绘制球体
glBegin(图形类型) 与 glEnd(void)
在glBegin(arg)的参数部分选择要绘制的图形类型; 在glBegin()与glEnd()之间添加坐标点。比如绘制三角形,就选择glBegin()的参数为GL_TRIANGLES, glVertex3f(x, y, z)添加三角形三个顶点的坐标,末尾加上glEnd().这种代码绘制的图形一般是一个三维空间中的平面图形。
glBegin(GL_TRIANGLES);
glVertex3f(x1, y1, z1);
glVertex3f(x2, y2, z2);
glVertex3f(x3, y3, z3);
glEnd();
glPushMatrix() 与 glPopMatrix()
在glPushMatrix() 与 glPopMatrix() 之间添加绘制基本平面图形,通过组合、平移、放大缩小就能轻易的实现复杂三维视图。
比如: 用glutSolidCube(1);绘制一个边长为一个单位的立方体,这个立方体的中心坐标为(t0, 0, 0);
进行平移、放大:
glPushMatrix();
glTranslatef(1, 2, 3)
glScalef(1,1,3);
glPopMatrix();
这样立方体的中心位置的坐标变成了(1,2,3),而且长宽高分别变成了1,1,3个单位长度。
按键交互:
1/2/3 灯光
4 书本
5/6 茶壶
7 老鼠
8 电视
9 机器人
0 椅子
o 开/关门
b 回到房间
a 左转
b 右转
方向键 前后左右移动
w 上移动
s 下移动
运行效果:
文件列表:
目录│文件列表:
├ 演示视频
│ └ 演示视频.mp4
└ 项目源码
│ glut32.dll
│ opengl.CPP
│ OPENGL1.exe
└ README.txt