- 实验目的
1.掌握 GLU 库中二次曲面函数(如gluSphere、gluCylinder、gluPartialDisk等)的使用方法,理解其参数化控制逻辑。
2.学会通过GLUquadricObj对象配置二次曲面的绘制样式(线框、实体等)。
3.掌握三维模型的交互控制(如键盘控制旋转),理解模型视图变换在三维可视化中的作用。
4.对比 GLU 与 GLUT 库中曲面绘制函数的差异,深化对 OpenGL 三维建模流程的认识。
- 实验内容
利用 GLU 库的二次曲面函数绘制球体、圆锥体、圆环面等三维曲面,并通过以下步骤完成实验:
1.初始化 OpenGL 环境,配置二次曲面对象GLUquadricObj。
2.实现键盘交互功能,通过方向键控制模型的 X、Y 轴旋转。
3.设计右键菜单,实现 GLUT 多面体、GLUT 曲面、GLU 曲面的切换绘制。
4.分别测试gluSphere(球体)、gluCylinder(圆锥)、gluPartialDisk(部分圆环)的绘制效果,观察参数对曲面细节的影响。
- 实验代码


- 实验结果
1.程序启动:弹出标题为 "GLU 二次曲面函数实验" 的窗口,背景为白色。右键点击可弹出包含 "GLUT 多面体""GLUT 曲面""GLU 曲面" 的菜单。
2.GLU 曲面绘制:
选择 "线框球体(GLU)",窗口中显示线框风格的球体,可通过方向键控制其绕 X、Y 轴旋转;
选择 "线框圆锥(GLU)",显示线框圆锥,旋转时可观察其三维结构;
选择 "线框部分圆环(GLU)",显示一段圆环面,参数startAngle和endAngle控制了圆环的显示范围。
3.交互控制:方向键可流畅控制模型旋转,旋转角度在 0~355° 间循环,模型渲染无闪烁。
线框正四面体:

实体正四面体:

线框正八面体:

实体正八面体:

线框球面:

实体球面:

线框茶壶:

实体茶壶:

线框球面:

线框圆锥面:

线框圆环面:

- 实验心得
本次实验让我深入理解了 GLU 库二次曲面函数的使用逻辑。与 GLUT 曲面函数相比,GLU 需要先创建GLUquadricObj对象并配置绘制样式(如线框、实体),参数化程度更高,能更精细地控制曲面的细分精度(如gluSphere的经纬度分段数)。通过gluCylinder和gluPartialDisk,我体会到二次曲面函数对 "底面半径、高度、角度范围" 等参数的灵活支持,这让复杂曲面的定制化绘制变得高效。同时,键盘交互与模型旋转的结合,让我直观感受到三维模型视图变换的作用,为后续开发交互式三维应用积累了经验。 对比 GLUT 和 GLU 的曲面绘制流程,我认识到 GLU 在底层控制上的优势,也理解了不同场景下选择工具库的取舍逻辑,这对提升 OpenGL 三维建模能力很有帮助。