• 大小: 534KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: opengl  

资源简介

使用opengl模拟太阳系内行星自转与公转的三维场景

资源截图

代码片段和文件信息

#include 				// windows的头文件
#include  // Glut的头文件
#include “Texture.h“ // 纹理导入的头文件

#define MAXTEXTURE 4 // 定义最大的纹理数目

// 定义窗口的标题、宽度、高度
#define WIN_title “探索太空--太阳系五大行星“
const int WIN_WIDTH = 800;
const int WIN_HEIGHT = 500;
BOOL isFullScreen = FALSE;

// 用户变量定义

GLfloat ep_Angle; // 地球公转的角度
GLfloat es_Angle; // 地球自转的角度
GLfloat mp_Angle; // 月亮公转的角度
GLfloat ms_Angle; // 月亮自转的角度
GLuint texture[MAXTEXTURE]; // 纹理数组,保存纹理名字
GLUquadricObj *quadric; // 建立二次曲面对象
GLfloat angle_Z; // 星空旋转角度

GLfloat LightAmbient[] = { 1.0f 1.0f 1.0f 0.0f }; // 定义环境光的颜色
GLfloat LightDiffuse[] = { 1.0f 1.0f 1.0f 0.0f }; // 定义漫反射光的颜色
GLfloat LightPosition[] = { 0.0f 0.0f 0.0f 1.0f }; // 定义光源的位置



// OpenGL初始化
void InitGL(void)
{
glClearColor(0.0f 0.0f 0.0f 0.5f);
glClearDepth(2.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);

glShadeModel(GL_SMOOTH);
glEnable(GL_CULL_FACE);

glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);

// 载入纹理
BuildTexture(“Data/1.bmp“ texture[0]);
BuildTexture(“Data/2.bmp“ texture[1]);
BuildTexture(“Data/3.bmp“ texture[2]);
BuildTexture(“Data/4.bmp“ texture[3]);
BuildTexture(“Data/5.bmp“ texture[4]);
BuildTexture(“Data/6.bmp“ texture[5]);
BuildTexture(“Data/7.bmp“ texture[6]);
BuildTexture(“Data/8.bmp“ texture[7]);
glEnable(GL_TEXTURE_2D); // 开启2D纹理映射

glLightfv(GL_LIGHT1 GL_AMBIENT LightAmbient); // 设置环境光
glLightfv(GL_LIGHT1 GL_DIFFUSE LightDiffuse); // 设置漫反射光

quadric = gluNewQuadric(); // 建立一个曲面对象指针
gluQuadricTexture(quadric GLU_TRUE); // 建立纹理坐标
gluQuadricDrawstyle(quadric GLU_FILL); // 用面填充
glEnable(GL_LIGHTING); // 打开光照
glEnable(GL_LIGHT1); // 打开光源1

}

// 场景绘制函数
void Display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

glTranslatef(0.0f 0.0f -5.0f); // 将坐标系移入屏幕8.0f
glRotatef(10 1.0f 0.0f 0.0f); // 将坐标系绕x轴旋转10度
glEnable(GL_LIGHT0); // 打开光源0

/**********************************绘制背景星空*********************************************/
glPushMatrix (); // 当前模型矩阵入栈
glTranslatef(-10.0f 3.0f 0.0f);
glRotatef (angle_Z 0.0f 0.0f 1.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D texture[1]); // 绑定星空纹理
glBegin(GL_QUADS); 
glNormal3f( 0.0f 0.0f 1.0f);
glTexCoord2f(0.0f 0.0f); glVertex3f(-20.0f -20.0f -5.0f);
glTexCoord2f(6.0f 0.0f); glVertex3f( 20.0f -20.0f -5.0f);
glTexCoord2f(6.0f 6.0f); glVertex3f( 20.0f  20.0f -5.0f);
glTexCoord2f(0.0f 6.0f); glVertex3f(-20.0f  20.0f -5.0f);
glEnd();
glPopMatrix (); // 当前模型矩阵出栈

/**********************************绘制太阳*************************************************/
glBindTexture(GL_TEXTURE_2D texture[2]); // 绑定纹理
glEnable(GL_BLEND)

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

     文件      10121  2007-04-29 23:19  salary\a.cpp

     文件     393270  2004-07-29 19:07  salary\Data\1.bmp

     文件     152806  1998-08-21 02:47  salary\Data\2.bmp

     文件      66616  2004-07-29 19:07  salary\Data\3.bmp

     文件      12344  2007-04-28 11:28  salary\Data\4.bmp

     文件      49208  2007-04-28 10:12  salary\Data\5.bmp

     文件      49208  2007-04-28 10:10  salary\Data\6.bmp

     文件      66616  2007-04-28 10:11  salary\Data\7.bmp

     文件      49208  2007-04-28 10:10  salary\Data\8.bmp

    ..A.SH.    115712  2007-04-28 11:34  salary\Data\Thumbs.db

    .......    237568  2007-04-29 14:35  salary\glut32.dll

     文件        399  2007-04-28 11:36  salary\resource.h

     文件       4468  2007-04-29 23:19  salary\salary.dsp

     文件        537  2007-04-29 23:03  salary\salary.dsw

     文件     208959  2007-04-29 23:19  salary\salary.exe

     文件      41984  2007-05-20 09:22  salary\salary.ncb

     文件      53760  2007-05-20 09:22  salary\salary.opt

     文件       8981  2007-04-28 11:36  salary\Texture.cpp

     文件        507  2007-04-28 11:36  salary\Texture.h

     目录          0  2007-05-23 20:02  salary\Data

     目录          0  2007-05-23 20:02  salary\Debug

     目录          0  2007-05-23 20:09  salary

----------- ---------  ---------- -----  ----

              1522272                    22


评论

共有 条评论