📄 solar_system.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 + -