资源简介
东南大学计算机图形学中间某次作业,少了一些内容,实现了视角切换等
代码片段和文件信息
#define GLUT_DISABLE_ATEXIT_HACK
#include
#include “glut.h“
#include
#include
#include
#include “glaux.h“
#include “GLU.h“
#include “Path.h“
using namespace std;
int axis; //马旋转轴编号
int axis2; //猫旋转轴编号
GLfloat theta[3] ={0.0 0.0 0.0}; //马每个轴的旋转角
GLfloat theta2[3] ={0.0 0.0 0.0}; //猫每个轴的旋转角
const int n = 1000;
GLfloat ax = -1.0f; //马的初始坐标
GLfloat ay = 0.0f;
GLfloat az = 0.0f;
GLfloat bx= 1.0f; //猫的初始坐标
GLfloat by = 0.0f;
GLfloat bz = 0.0f;
GLfloat cx= 1.0f; //猫的目标坐标
GLfloat cy = 0.0f;
GLfloat cz = 0.0f;
GLfloat mx = 1.0f; //马缩放倍数
GLfloat my = 1.0f;
GLfloat mz = 1.0f;
GLfloat nx = 1.0f; //猫缩放倍数
GLfloat ny = 1.0f;
GLfloat nz = 1.0f;
GLint view = 0;
GLfloat ex[4] = {0.0 0.0 0.00.01}; //观察者位置
GLfloat ey[4] = {1.0 0.0 0.04.0};
GLfloat ez[4] = {4.0 0.0 0.00.0};
GLfloat fx[4] = {0.0 0.0 0.00.0}; //观察对象位置
GLfloat fy[4] = {0.0 0.0 0.00.0};
GLfloat fz[4] = {0.0 0.0 0.00.0};
GLint flag;
const GLfloat Pi = 3.1415926536f; //圆周率
GLfloat Lox;
GLfloat xrot1; //x轴旋转角度
GLfloat yrot1; //y轴旋转角度
GLfloat zrot1; //z轴旋转角度
GLfloat Lox1;
GLuint texture[1]; //纹理命名空间
GLUquadricObj *quadratic; // 二次几何体
Path* path = new Path(00NULL);
Path* p = path;
AUX_RGBImageRec *LoadBMP(char *Filename) //加载位图图像
{
FILE *File = NULL; //文件句柄先设置为空
if (!Filename) //确定文件是否载入
{
return NULL; //如果没载入返回值为空
}
File = fopen(Filename “r“); //尝试打开文件
if (File) //文件存在吗
{
fclose(File); //关闭句柄
return auxDIBImageLoadA(Filename); //加载位图返回指针
}
return NULL; //加载失败返回空
}
int LoadGLTextures() //调用上面的代码转换成纹理
{
int Status = FALSE; //设置一个叫做 Status 的变量。我们使用它来跟踪是否能够载入位图以及能否创建纹理。
AUX_RGBImageRec *TextureImage[2]; //创建纹理存储空间
memset(TextureImage 0 sizeof(void *)* 2); //初始化
if ((TextureImage[0] = LoadBMP(“bk1.bmp“)) && // 加载背景图
(TextureImage[1] = LoadBMP(“mf2.bmp“))) // 反射图(球形纹理图)
Status = TRUE;
glGenTextures(2 &texture[0]); // 创建两个纹理
for (int i = 0; i < 2; i++)
{
//使用来自位图数据生成的典型纹理
glBindTexture(GL_TEXTURE_2D texture[i]);
//设置纹理属性
glTexImage2D(GL_TEXTURE_2D 0 3 TextureImage[i]->sizeX TextureImage[i]->sizeY 0 GL_RGB GL_UNSIGNED_BYTE TextureImage[i]->data);
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR); //线性过滤
glTexParameteri(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR_MIPMAP_NEAREST); //相邻mipmaps层线性过滤
//创建mipmaps
gluBuild2DMipmaps(GL_TEXTURE_2D GL_RGB TextureImage[i]->sizeX TextureImage[i]->sizeY GL_RGB GL_UNSIGNED_BYTE TextureImage[i]->data);
glTexEnvi(GL_TEXTURE_ENV GL_TEXTURE_ENV_MODE GL_REPLACE); //设置纹理环为代替
}
for (int loop = 0; loop <= 1; loop++) //纹理是否存在
{
if (TextureImage[loop]) // 如果图像存在则清除
{
if (TextureImage[loop]->data)
{
free(TextureImage[loop]->data); //释放纹理图像占用的内存
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 46465024 2015-01-05 12:37 test2\ipch\test2-2809e542\test2-aaf1d2be.ipch
文件 324774 2014-12-15 23:32 test2\test2\bk1.bmp
文件 1968 2015-01-05 12:37 test2\test2\Debug\cl.command.1.tlog
文件 49798 2015-01-05 12:37 test2\test2\Debug\CL.read.1.tlog
文件 640 2015-01-05 12:37 test2\test2\Debug\CL.write.1.tlog
文件 3708 2015-01-05 12:37 test2\test2\Debug\li
文件 6216 2015-01-05 12:37 test2\test2\Debug\li
文件 1128 2015-01-05 12:37 test2\test2\Debug\li
文件 1226 2015-01-05 12:37 test2\test2\Debug\mt.command.1.tlog
文件 692 2015-01-05 12:37 test2\test2\Debug\mt.read.1.tlog
文件 294 2015-01-05 12:37 test2\test2\Debug\mt.write.1.tlog
文件 132181 2015-01-05 12:37 test2\test2\Debug\test.obj
文件 381 2015-01-05 12:37 test2\test2\Debug\test2.exe.intermediate.manifest
文件 70 2015-01-05 12:37 test2\test2\Debug\test2.lastbuildstate
文件 2322 2015-01-05 12:37 test2\test2\Debug\test2.log
文件 707 2015-01-02 14:11 test2\test2\Debug\test2.vcxprojResolveAssemblyReference.cache
文件 0 2015-01-02 14:11 test2\test2\Debug\test2.write.1.tlog
文件 560128 2015-01-05 12:37 test2\test2\Debug\vc100.idb
文件 290816 2015-01-05 12:37 test2\test2\Debug\vc100.pdb
文件 1264640 2015-01-02 13:38 test2\test2\Debug\vc110.idb
文件 405504 2015-01-02 13:38 test2\test2\Debug\vc110.pdb
文件 12065 2010-09-01 16:37 test2\test2\glaux.h
文件 1312394 2005-10-19 15:55 test2\test2\GLAUX.LIB
文件 234006 2014-12-15 16:07 test2\test2\glext.h
文件 18282 2005-10-19 15:55 test2\test2\GLU.H
文件 49514 2005-10-19 15:55 test2\test2\GLU32.LIB
文件 27705 2011-11-07 13:55 test2\test2\GLUT.H
文件 352998 2014-12-15 23:42 test2\test2\mf2.bmp
文件 336274 2005-10-19 15:55 test2\test2\OPENGL32.LIB
文件 22160 2015-01-05 09:48 test2\test2\test.cpp
............此处省略25个文件信息
- 上一篇:海康威视网络摄像头SDK开发文档
- 下一篇:Blua轻量级lua编辑器
评论
共有 条评论