資源簡介
該作品是課程設計作品,通過合理運用計算機圖形學相關知識—openGL數據庫、基本幾何圖元繪制、二維觀察變換、圖形的幾何變換、三維觀察變換、紋理貼圖、交互技術、場景漫游等完成了作品《冰雪奇緣》。
代碼片段和文件信息
#include?“stdafx.h“
#include?“stdlib.h“
#include?“math.h“
#include?“GL/glut.h“
#include?“GL/glaux.h“
#include?“mmsystem.h“
GLuint?texture[13];
GLfloat?xRot;
GLfloat?yRot;
GLfloat?zRot;
GLfloat?angle;
GLfloat?angle1;
GLfloat?LastxPos;
GLfloat?LastyPos;
BOOL?LButtonDn=false;
GLfloat z=0.0f;
static?float?xx=0.0fyy=40.0fzz=1499.0f;
static?float?lx=0.0fly=0.0flz=-0.5f;
#define?YELLOW?1
#define?MRED?2
#define?CGREEN?3
float?red=1.0;
float?green=1.0;
float?blue=1.0;
void?ChangeSize(GLint?wGLint?h)
{
if(h==0)?h=1;
glViewport(00wh);
GLfloat?fAspect=(GLfloat)w/(GLfloat)h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0fAspect1.01000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(xx?yy?zz?xx?+?lxyy?+?lyzz?+?lz?0.0f1.0f0.0f);
}
void?MenuEvents(int?oporation)?
{????????????????
switch?(oporation)
{?????????????????
case?YELLOW?:???????????????????????????
red=1.0;
green=1.0;
blue=0.0;
break;?????????????????
case?MRED?:???????????????????????????
red=1.0;
green=0.0;
blue=1.0;
break;???????????????
case?CGREEN?:???????????????????????????
red=0.0;
green=1.0;
blue=1.0;
break;????????????????
}
}
void?createGLUTMenus()?
{??????????
int?menu;??????????????????
menu?=?glutCreateMenu(MenuEvents);????????????????????????
glutAddMenuEntry(“Yellow“YELLOW);?????????????????
glutAddMenuEntry(“MRed“MRED);?????????
glutAddMenuEntry(“CGreen“CGREEN);??????????????????????????
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
AUX_RGBImageRec?*LoadBMP(char?*Filename)
{
FILE?*File=NULL;
if?(!Filename)
{
return?NULL;
}
File=fopen(Filename“r“);
if?(File)
{
fclose(File);
return?auxDIBImageLoad(Filename);
}
return?NULL;
}
int?LoadGLTextures()
{
int???i;
char?filename[128];
AUX_RGBImageRec?*TextureImage[13];
memset(TextureImage0sizeof(void?*)*11);
for(i=0;i<14;i++)
{
sprintf(filename“Data/%d.bmp“i);
TextureImage[i]?=?LoadBMP(filename);
if(!TextureImage[i])
{
char?msg[256];
sprintf(msg“Cannot?read?the?file?:?%s“filename);
MessageBox(NULLmsg“Error“MB_OK);
return?FALSE;
}
}
glGenTextures(13texture);
for(i=0;i<14;i++)
{
glBindTexture(GL_TEXTURE_2Dtexture[i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_NEAREST);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_NEAREST);
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[i]->sizeX?TextureImage[i]->sizeY?0?GL_RGB?GL_UNSIGNED_BYTE?TextureImage[i]->data);
if(TextureImage[i]->data)
free(TextureImage[i]->data);
free(TextureImage[i]);
}
return?TRUE;
}
void?DrawZhuzi()
{
????//柱子1
glPushMatrix();
glBindTexture(GL_TEXTURE_2D?texture[0]);
glRotatef(-40.00.00.01.0);
glTranslatef(100.0-220.00.0f);
glNormal3f(0.00.01.0);
glBegin(GL_
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????21732??2015-01-04?13:22??031\031.cpp
?????文件???????4569??2014-12-31?23:32??031\031.dsp
?????文件????????514??2014-12-30?14:05??031\031.dsw
?????文件??????50176??2015-01-18?20:49??031\031.ncb
?????文件??????48640??2015-01-18?20:49??031\031.opt
?????文件????????935??2015-01-18?20:32??031\031.plg
?????文件????3145784??2014-12-31?14:15??031\Data\0.bmp
?????文件?????457256??2014-12-31?16:21??031\Data\1.bmp
?????文件?????182216??2015-01-03?22:47??031\Data\10.bmp
?????文件????3145784??2012-12-28?11:51??031\Data\11.bmp
?????文件?????205976??2015-01-04?12:33??031\Data\12.bmp
?????文件?????360056??2015-01-04?12:34??031\Data\13.bmp
?????文件?????432056??2014-12-31?17:03??031\Data\2.bmp
?????文件?????403256??2014-12-31?22:27??031\Data\3.bmp
?????文件?????216536??2015-01-03?17:21??031\Data\4.bmp
?????文件?????360056??2015-01-03?19:44??031\Data\5.bmp
?????文件????3932216??2015-01-03?20:25??031\Data\6.bmp
?????文件?????270056??2015-01-03?20:49??031\Data\7.bmp
?????文件?????232376??2015-01-03?22:27??031\Data\8.bmp
?????文件?????232376??2015-01-03?22:37??031\Data\9.bmp
?????文件???65123136??2015-01-03?23:29??031\Data\The?First?Snowflakes.wav
?????文件?????258099??2015-01-18?20:32??031\Debug\031.exe
?????文件?????429976??2015-01-18?20:32??031\Debug\031.ilk
?????文件??????51728??2015-01-18?20:32??031\Debug\031.obj
?????文件?????203752??2014-12-30?15:15??031\Debug\031.pch
?????文件?????689152??2015-01-18?20:32??031\Debug\031.pdb
?????文件???????1882??2014-12-30?15:16??031\Debug\StdAfx.obj
?????文件??????99328??2015-01-18?20:32??031\Debug\vc60.idb
?????文件??????61440??2015-01-18?20:32??031\Debug\vc60.pdb
?????文件???????1190??2014-12-30?14:05??031\ReadMe.txt
............此處省略8個文件信息
評論
共有 條評論