資源簡介
opengl使用頂點數組畫出球體,實現地球圍繞太陽轉動,左鍵加快地球圍繞太陽的轉速,右鍵減慢地球圍繞太陽的轉速

代碼片段和文件信息
#include
#include
#include
#include
#include?
#pragma?comment(lib?“glaux.lib“)
float?theta[3]={0.00.00.0};
double?speed=0.05;
double?day=0.0;
float?view[3]={4.0-74.0};
unsigned?int?g_texture[3];
void?sphere(GLfloat?fRadius)
{
int?longitude=20;
int?latitude=20;
double?PI=3.1415926;
GLfloat?drho?=?PI?/?(GLfloat)?longitude;
GLfloat?dtheta?=?2.0f?*?PI?/?(GLfloat)?latitude;
GLfloat?ds?=?1.0f?/?(GLfloat)?latitude;
GLfloat?dt?=?1.0f?/?(GLfloat)?longitude;
GLfloat?t?=?1.0f;
GLfloat?s?=?0.0f;
GLint?i?j;?????
for?(i?=?0;?i? {
GLfloat?rho?=?(GLfloat)i?*?drho;
GLfloat?srho?=?(GLfloat)(sin(rho));
GLfloat?crho?=?(GLfloat)(cos(rho));
GLfloat?srhodrho?=?(GLfloat)(sin(rho?+?drho));
GLfloat?crhodrho?=?(GLfloat)(cos(rho?+?drho));
s?=?0.0f;
GLfloat?sv[42][3];
GLfloat?normal[42][3];
GLfloat?texture[42][2];
int?i=0;
for?(?j?=?0;?j?<=?latitude;?j++)?
{
GLfloat?theta?=?(j?==?latitude)???0.0f?:?j?*?dtheta;
GLfloat?stheta?=?(GLfloat)(-sin(theta));
GLfloat?ctheta?=?(GLfloat)(cos(theta));
GLfloat?x?=?stheta?*?srho;
GLfloat?y?=?ctheta?*?srho;
GLfloat?z?=?crho;
sv[i][0]=x?*?fRadius;
sv[i][1]=y?*?fRadius;
sv[i][2]=z?*?fRadius;
normal[i][0]=x;
normal[i][1]=y;
normal[i][2]=z;
texture[i][0]=s;
texture[i][1]=t;
x?=?stheta?*?srhodrho;
y?=?ctheta?*?srhodrho;
z?=?crhodrho;
s?+=?ds;
sv[i+1][0]=x?*?fRadius;
sv[i+1][1]=y?*?fRadius;
sv[i+1][2]=z?*?fRadius;
normal[i+1][0]=x;
normal[i+1][1]=y;
normal[i+1][2]=z;
texture[i+1][0]=s;
texture[i+1][1]=t-dt;
i?+=2;
}
glVertexPointer(3GL_FLOAT0sv);
glNormalPointer(GL_FLOAT0normal);
glTexCoordPointer(2GL_FLOAT0texture);
glDrawArrays(GL_TRIANGLE_STRIP042);
t?-=?dt;
}
}
void?mydisplay()
{
glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
????glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glMatrixMode?(GL_PROJECTION);????
glLoadIdentity?();
gluPerspective(45.01.01.020);
gluLookAt(view[0]view[1]view[2]000001);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBindTexture(GL_TEXTURE_2D?g_texture[0]);
sphere(0.6);
glBindTexture(GL_TEXTURE_2D?g_texture[1]);
day?+=speed;
if(day>360.0)?day=0.0;
glRotated(-day001);
glTranslatef(3.00.00.0);
sphere(0.3);
glBindTexture(GL_TEXTURE_2D?g_texture[2]);
glRotated((day/40.0*360.0?-?day)00-1);
glTranslatef(0.60.00.0);
sphere(0.15);
GLfloat?light_model_ambient[]={0.70.70.71.0};
glLightModelfv(GL_LIGHT_MODEL_AMBIENTlight_model_ambient);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glutPostRedisplay();
glutSwapBuffers();
glFlush();
}
//載入一個.bmp格式的貼圖紋理
int?LoadGLTextures(GLuint*?unTexture)????????????????
{
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-10-26?08:08??11301046_王真真_Assignment1\
?????目錄???????????0??2013-10-26?08:14??11301046_王真真_Assignment1\screenshot\
?????文件???????26923??2013-10-26?08:12??11301046_王真真_Assignment1\screenshot\截圖1.png
?????文件???????32472??2013-10-26?08:13??11301046_王真真_Assignment1\screenshot\截圖2.png
?????文件???????19154??2013-10-26?08:14??11301046_王真真_Assignment1\screenshot\截圖3.png
?????目錄???????????0??2013-10-26?08:18??11301046_王真真_Assignment1\source?code\
?????文件??????786488??2013-10-26?02:29??11301046_王真真_Assignment1\source?code\earth1.bmp
?????文件????????7098??2013-10-26?02:41??11301046_王真真_Assignment1\source?code\exercise2.cpp
?????文件??????786488??2013-10-26?02:33??11301046_王真真_Assignment1\source?code\moon1.bmp
?????文件??????786488??2013-10-25?22:59??11301046_王真真_Assignment1\source?code\sun1.bmp
?????文件???????62976??2013-10-26?02:41??11301046_王真真_Assignment1\source?code\test2.exe
?????目錄???????????0??2013-10-26?08:18??11301046_王真真_Assignment1\source?code\庫文件\
?????文件???????12024??2011-11-13?16:06??11301046_王真真_Assignment1\source?code\庫文件\GLAUX.H
?????文件?????1189322??2011-11-13?17:02??11301046_王真真_Assignment1\source?code\庫文件\GLAUX.LIB
?????文件?????1386496??2011-11-13?16:06??11301046_王真真_Assignment1\source?code\庫文件\glaux.dll
?????文件??????169984??1998-08-18?16:25??11301046_王真真_Assignment1\source?code\庫文件\glut.dll
?????文件???????21440??1998-08-18?16:24??11301046_王真真_Assignment1\source?code\庫文件\glut.h
?????文件???????79654??1998-08-18?16:25??11301046_王真真_Assignment1\source?code\庫文件\glut.lib
?????文件??????169984??1998-08-18?16:25??11301046_王真真_Assignment1\source?code\庫文件\glut32.dll
?????文件???????79898??1998-08-18?16:25??11301046_王真真_Assignment1\source?code\庫文件\glut32.lib
?????文件?????????203??2013-10-26?08:08??11301046_王真真_Assignment1\說明.txt
評論
共有 條評論