资源简介

这是一个基于openGL的C++太阳系模型。其中太阳、地球 、月球均带有纹理,同时实现了光照的效果,是整个模型具有了立体效果。希望这个对大家有所帮助。

资源截图

代码片段和文件信息

#include “LoadBMP.h“

void myinit(void) 
{
glClearColor (0.0 0.0 0.0 0.0);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D); //启用二维纹理


GLfloat mat_shininess[] = { 10.0 };
    GLfloat light_position[] = { 0.0 0.0 1.0 0.0 };
GLfloat white_light[] = {1.0 1.0 1.0 1.0};//光源设置
GLfloat lmodel_ambient[] = {0.2 0.2 0.2 1.0};

glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT GL_SHININESS mat_shininess);
glLightfv(GL_LIGHT0 GL_POSITION light_position);//0号光源的位置
glLightfv(GL_LIGHT0 GL_DIFFUSE white_light);
glLightfv(GL_LIGHT0 GL_SPECULAR white_light);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT lmodel_ambient);//使用lmodel_ambien

LoadAllTextures(); //调入纹理
}

void myidle()
{
day+=angle;
glutPostRedisplay();

}

void mymouse(int buttonint stateint xint y)
{
if(state==GLUT_DOWN && button==GLUT_LEFT_BUTTON){
if(first)
{
glutIdleFunc(myidle);
first=!first;
}
else
{
glutIdleFunc(0);
first=!first;
}
}
}

void mykeyboard(unsigned char key int x int y) 
{
if (key == 27)         
exit(0); 


void mydisplay(void)
{
GLfloat  whiteLight[] = { 0.2f 0.2f 0.2f 1.0f };
GLfloat  lightPos[] = { 0.0f 0.0f 0.0f 2.0f };

year=day/365;
month=day/30;

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

GLfloat mat_ambient1[]  = {1001};
GLfloat mat_emission[]  = {1110};

GLfloat mat_ambient2[]  = {0.40.40.81};
GLfloat  no_emission[]  = {0001};

glPushMatrix();
glBindTexture(GL_TEXTURE_2Dsun->texID);
glRotatef (month 0.0 1.0 0.0); //太阳自转
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient1);
glMaterialfv(GL_FRONT GL_EMISSION mat_emission);
glRotatef (90 -1 0 0);

glDisable(GL_LIGHTING);
gltDrawSphere(1.0 60 40); //绘制太阳
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0GL_POSITIONlightPos);

glPopMatrix();

glPushMatrix();
glRotatef (year 0.0 1.0 0.0); //月亮与地球一起绕太阳转(地球公转)
glPushMatrix();
glBindTexture(GL_TEXTURE_2Dearth->texID);
glTranslatef (3.0 0.0 0.0);
glRotatef (month 0.0 1.0 0.0); //地球自转 
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient2);
glMaterialfv(GL_FRONT GL_EMISSION no_emission);
glRotatef (90 -1 0 0);
gltDrawSphere(0.4 40 40); //绘制地球
glPopMatrix();

glPushMatrix();
glBindTexture(GL_TEXTURE_2Dmoon->texID);
glTranslatef (3.0 0.0 0.0);
glRotatef (60 -1 1 0);
glRotatef (month 0 1.0 0); //月球绕地球转
glTranslatef (0.6 0.0 0.0);
glRotatef (90 -1 0 0);
gltDrawSphere(0.07 20 20); //绘制月球
glPopMatrix();
glPopMatrix();

glutSwapBuffers();   
}

void myreshape (int w int h)
{
glViewport (0 0 (GLsizei) w (GLsizei) h); //指定视口大小
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();

gluPerspective(60.0 (GLfloat) w/(GLfloat) h 1 20); //透视投影

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

gluL

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    3145784  2009-08-26 17:18  太阳系模型\Debug\earth.bmp

     文件     786488  2009-08-26 17:13  太阳系模型\Debug\moon.bmp

     文件    2016256  2012-06-09 11:05  太阳系模型\Debug\solar.bsc

     文件     217176  2012-06-20 17:34  太阳系模型\Debug\solar.exe

     文件     262756  2012-06-20 17:34  太阳系模型\Debug\solar.ilk

     文件      30899  2012-06-20 17:34  太阳系模型\Debug\solar.obj

     文件    3705708  2012-06-20 17:27  太阳系模型\Debug\solar.pch

     文件     459776  2012-06-20 17:34  太阳系模型\Debug\solar.pdb

     文件          0  2012-06-09 11:05  太阳系模型\Debug\solar.sbr

     文件     172856  2007-08-18 01:29  太阳系模型\Debug\sun.bmp

     文件     328704  2012-06-20 17:35  太阳系模型\Debug\vc60.idb

     文件      77824  2012-06-20 17:34  太阳系模型\Debug\vc60.pdb

     文件     217181  2012-03-19 21:16  太阳系模型\Debug\太阳系模型.exe

     文件     259856  2012-03-19 21:16  太阳系模型\Debug\太阳系模型.ilk

     文件    3709072  2012-03-19 20:53  太阳系模型\Debug\太阳系模型.pch

     文件     418816  2012-03-19 21:16  太阳系模型\Debug\太阳系模型.pdb

     文件    3145784  2009-08-26 17:18  太阳系模型\earth.bmp

     文件    1386496  2001-08-29 17:14  太阳系模型\glaux.dll

     文件     237568  2001-11-08 02:27  太阳系模型\glut32.dll

     文件       5489  2012-03-19 20:53  太阳系模型\LoadBMP.h

     文件     786488  2009-08-26 17:13  太阳系模型\moon.bmp

     文件       3573  2012-06-20 17:34  太阳系模型\solar.cpp

     文件       3389  2012-06-20 17:35  太阳系模型\solar.dsp

     文件        518  2012-06-20 17:36  太阳系模型\solar.dsw

     文件      41984  2012-06-20 17:36  太阳系模型\solar.ncb

     文件      48640  2012-06-20 17:36  太阳系模型\solar.opt

     文件        244  2012-06-20 17:35  太阳系模型\solar.plg

     文件     172856  2007-08-18 01:29  太阳系模型\sun.bmp

     文件       4389  2012-03-19 20:31  太阳系模型\太阳系模型.dsp

     文件        545  2012-03-19 20:21  太阳系模型\太阳系模型.dsw

............此处省略8个文件信息

评论

共有 条评论