⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 solar_system.h

📁 学习图形学时做的一个小玩意
💻 H
字号:
#include <windows.h>		// Header File For Windows
#include <gl\gl.h>			// Header File For The OpenGL32 Library
#include <gl\glu.h>			// Header File For The GLu32 Library
#include <gl\glut.h>
#include <gl\glaux.h>		// Header File For The Glaux Library
#include <stdio.h>

#define MAXTEXTURE 10       // 纹理数
#define PLANETNUM  8        // 行星数

bool	keys[256];			// Array Used For The Keyboard Routine
bool	active=TRUE;		// Window Active Flag Set To TRUE By Default
bool	fullscreen=TRUE;	// Fullscreen Flag Set To Fullscreen Mode By Default
GLUquadricObj *quadric;
//***************月球参数******************
GLfloat moon_rot_angle = 0.0f;     // 月球自转角度
GLfloat moon_rev_angle = 0.0f;     // 月球公转角度
GLfloat moon_rot_speed = 2.0f;     // 月球自转角速度
GLfloat moon_rev_speed = 1.0f;     // 月球公转角速度
//*****************************************

//***************太阳参数******************
GLfloat sun_radius = 0.4f;  // 太阳半径
GLfloat sun_rot_angle;      // 太阳自转角度
GLfloat sun_rev_angle;      // 太阳公转角度
//*****************************************

GLfloat z_angle = 0.0f;          // 星空旋转角度
GLfloat z_speed = 0.01f;         // 星空旋转速度

//**************光参数*********************
GLfloat LightAmbient[] = {1.0f,1.0f,0.0f,0.0f};              //环境光颜色
GLfloat LightDiffuse[] = {1.0f,0.0f,0.0f,0.0f};              //漫反射光颜色
GLfloat SunLightPosition[] = {0.0f,0.0f,0.0f,1.0f};          //太阳光源位置
GLfloat fogColor[] = {1.0f,1.0f,1.0f,1.0f};                  //雾的颜色 
//*****************************************

//**************行星参数*******************
//水星 金星 地球 火星 木星 土星 天王星 海王星  
GLfloat distance[] = {0.6f,0.7f,1.0f,1.5f,3.2f,4.5f,5.2f,6.1f};			//行星距离太阳的距离
GLfloat radius[] = {0.05f,0.1f,0.1f,0.05f,0.35f,0.3f,0.2f,0.2f};		//行星的半径
GLfloat rot_speed[] = {0.5f,0.6f,2.0f,1.2f,1.2f,0.5f,0.6f,0.8f};		//行星自转角速度
GLfloat rev_speed[] = {0.2f,0.3f,0.5f,0.5f,0.2f,0.3f,0.4f,0.6f};		//行星公转角速度
GLfloat rot_angle[] = {0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f};        //行星自转角度
GLfloat rev_angle[] = {0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f};        //行星公转角度
GLfloat incline_angle[] = {3.0f,-4.0f,5.0f,-3.0f,4.0f,8.0f,9.0f,11.0f}; //行星轨道与水平面的夹角
//*****************************************

//*************彗星参数********************
GLfloat comet_radius = 0.075;                                //彗星头部半径
GLfloat comet_length = 2.0f;                                 //彗星尾部长度
GLfloat comet_position[] = {-3.0f, -3.0f, 0.0f};             //彗星位置
GLfloat comet_velocity[] = {0.005f,0.005f,-0.005f};          //彗星速度
//*****************************************

GLuint  texture[MAXTEXTURE];                                 //行星表面纹理
GLuint  base;                                                //用以保存第一个显示表的名称

//************视点参数********************
GLfloat current_position[] = {0.0f,0.0f,1.0f};               //当前视点位置
GLfloat move_speed = 0.01f;                                  //视点移动速度
//****************************************

//***************************************
struct FONTS
{
	DWORD val;
	GLuint listName;
	GLYPHMETRICSFLOAT gmf;
    FONTS *next;
};
FONTS *begin,*end;
HFONT oldFont;
HFONT newFont;
//***************************************

//***********绘制卫星*********************
GLvoid Draw_satellite();
//****************************************

//***********显示制作人*******************
BOOL  show = TRUE;
GLvoid BuildFontGL();
FONTS * AddFont(DWORD dwChar);
GLvoid KillFontGL();
GLvoid glPrint(const char *fmt);
//****************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -