二维图形几何变换实战:平移、缩放与旋转

需积分: 45 9 下载量 174 浏览量 更新于2024-09-09 2 收藏 4.92MB DOC 举报
本篇文档主要介绍了如何在OpenGL中进行二维图形的几何变换,包括平移、缩放和旋转。实验的主要目的是帮助读者掌握这些基本图形操作技巧,并通过编程实践来实现图形的动态变化。 首先,实验要求用户使用C++和OpenGL库(glut.h)来完成以下任务: 1. **二维图形几何变换**:利用提供的`myshape()`函数,绘制一个由五条线段构成的基本图形。该函数定义了五个顶点坐标(x和y),通过`glBegin(GL_LINES)`和`glVertex2i()`绘制线段。用户可以通过`glLineWidth()`改变线条粗细,`glColor3f()`改变线条颜色,以此展示平移的效果。例如,通过调整顶点的位置,可以实现图形在二维空间中的移动。 2. **菜单操作与变换**:文档提到一个子菜单功能`SubMenuFunc1()`,用户可以选择不同的选项(case 1到4),这可能对应着对图形的不同变换。具体来说,当选择某个值时,代码会执行不同的图形操作,如改变线条颜色或宽度,以及可能的图形位置调整,这些都是二维几何变换的体现。用户需要根据代码逻辑理解如何通过菜单选择触发相应的几何变换。 3. **投影矩阵设置**:在`Reshape()`函数中,通过`glOrtho()`函数设置了窗口的投影范围,这决定了图形在屏幕上显示的视野。`glOrtho()`函数用于创建一个二维正交投影,控制图形在X和Y轴上的缩放比例。 4. **矩阵操作**:通过`glMatrixMode()`函数,实验指导用户切换到投影矩阵堆栈和模型视图矩阵,分别用于设置图形的全局和局部变换。`glLoadIdentity()`函数则用于重置矩阵,以便在每次变换前后进行清晰的管理。 总结起来,本实验着重于实践二维图形的几何变换技术,通过OpenGL库提供的一系列函数,使学生能够在实际编程环境中理解和掌握平移、缩放、旋转等基本图形操作。通过完成实验,读者不仅能熟悉OpenGL编程语法,还能增强对图形变换原理的理解,这对于学习计算机图形学和游戏开发等领域具有重要意义。