3d编程基础

 使用Opengl库实现 实验一 一、实验目的 1.熟悉3D基本编程。 2.熟悉视点观察函数的设置和使用。3.熟悉投影变换函数的设置和使用。4.熟悉基本3D图元的绘制。 二、实验内容 1.读懂以下3D物体程序,并结合本书内容理解一些新的绘制函数和投影变换函数的含义:3D Cube.cpp(见后面参考程序)



使用Opengl库实现

实验一

一、实验目的

1.熟悉3D基本编程。

2.熟悉视点观察函数的设置和使用。3.熟悉投影变换函数的设置和使用。4.熟悉基本3D图元的绘制。

二、实验内容

1.读懂以下3D物体程序,并结合本书内容理解一些新的绘制函数和投影变换函数的含义:3D Cube.cpp(见后面参考程序)为正交投影下的旋转3D立方体,按下鼠标可实现不同方向的旋转,效果图参见实验图9-1,分析3D编程代码与程序结构。

对于以下操作需要记录不同效果图和修改的相应参数:

1)让静止的立方体绕Z轴不停旋转。

修改参数:

  1. // 设置旋转轴:两个三维的点确定的旋转轴
  2. GLfloat axis[][3] = {
  3.    0.5f,0.5f, 0.0f,
  4.    0.5f, 0.5f, 1.0f
  5. };
  6.    // 设置绕给定的轴旋转
  7.    glTranslatef(axis[0][0], axis[0][1], axis[0][2]);
  8.    glRotatef(angle, axis[1][0] - axis[0][0], axis[1][1] - axis[0][1], axis[1][2] - axis[0][2]);
  9.    glTranslatef(-axis[0][0], -axis[0][1], -axis[0][2]);

2)修改不同视点,目标点不变,观看显示效果。

gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, -1, -1, 1); 相当于我们的脑袋位置在(0.0,0.0,5.0)处,眼睛望向(0.0,0.0,0.0),即原点。后面的三个参数(-1, -1, 1),不变

修改:gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, -1, -1, 1);

3)修改目标点,视点不动,观看显示效果。

修改:gluLookAt(2, 2, 2, 0.0, 0.0, 0.0, -1, -1, 1);

为:gluLookAt(2, 2, 2, 0.0, 1, 0.0, -1, -1, 1); 修改目标点,视点不动

结果如下:

4)视点与目标点同时修改,观看显示效果。

修改:gluLookAt(2, 2, 2, 0.0, 0.0, 0.0, -1, -1, 1);

为:gluLookAt(1, 2, 0, 0.0, 1, 0.0, -1, -1, 1);//修改目标点和视点

结果如下:

 

5)视点与目标点不变,修改观察体大小,观看显示效果。

//修改正方体大小即修改顶点位置,代码如下:

  1. static const GLfloat vertex[][3] = {  
  2. 3d编程基础    0.0f, 0.0f, 0.0f,  
  3.     1.5f, 0.0f, 0.0f,  
  4.     0.0f, 1.5f, 0.0f,  
  5.     1.5f, 1.5f, 0.0f,  
  6.     0.0f, 0.0f, 1.5f,  
  7.     1.50f, 0.0f, 1.5f,  
  8.     0.0f, 1.5f, 1.5f,  

6)将正交投影观察体改为透视投影观察体,并设置其大小,观察显示效果。

核心代码更改:

 

两者变化如下:

7)将立方体替换为茶壶,观看显示效果。

核心代码:

  1.  

实验结果:

8)将立方体替换为圆环,观看显示效果。

核心代码:

  1.  

实验结果:

⒉.构思绘制茶壶和圆环造型程序Teapot_Torus.cpp。在紧挨着茶壶下方添加一个平行的圆环,茶壶和圆环不停绕中心轴旋转,观看显示效果,效果图参见实验图9-2。

实验结果:

三、最终代码

  1.  

编程小号
上一篇 2024-10-01 17:26
下一篇 2024-10-01 17:26

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/25.html