(完整版)基于OpenGL的飞机3D实时仿真_程序代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "total.h"

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define GLUT_DISABLE_ATEXIT_HACK

#define FILE_NAME "feiji.3DS" //指定对应的FILE NAME

#define SCREEN_WIDTH 800

#define SCREEN_HEIGHT 600

#define SCREEN_DEPTH 16

#define MAX_TEXTURES 100 // 最大的纹理数目

#define PRIMARY 0x4D4D// 基本块(Primary Chunk),位于文件的开始// 主块(Main Chunks)

#define OBJECTINFO 0x3D3D // 网格对象的版本号

#define VERSION 0x0002 // .3ds文件的版本

#define EDITKEYFRAME 0xB000 // 所有关键帧信息的头部

// 对象的次级定义(包括对象的材质和对象)

#define MATERIAL 0xAFFF // 保存纹理信息

#define OBJECT 0x4000 // 保存对象的面、顶点等信息// 材质的次级定义

#define MATNAME 0xA000 // 保存材质名称

#define MATDIFFUSE 0xA020 // 对象/材质的颜色

#define MATMAP 0xA200 // 新材质的头部

#define MATMAPFILE 0xA300 // 保存纹理的文件名

#define OBJECT_MESH 0x4100 // 新的网格对象

// OBJECT_MESH的次级定义

#define OBJECT_VERTICES 0x4110 // 对象顶点

#define OBJECT_FACES 0x4120 // 对象的面

#define OBJECT_MATERIAL 0x4130 // 对象的材质

#define OBJECT_UV 0x4140 // 对象的UV纹理坐标

int g_ViewMode = GL_TRIANGLES;

bool g_bLighting = true;

float g_Rotatex = 0;

float g_Rotatey = 0;

float g_Rotatez = 0;

float g_x =0;

float g_y =0;

float g_z =0;

//。。。。。。。。。。。。。。。。。。。。定义需要导入的数据

float Rotatex ;

float Rotatey ;

float Rotatez ;

float x ;

float y ;

float z ;

double gl_x; double gl_y; double gl_z; double gl_pitch; double gl_roll; double gl_yaw; double gl_wcpitch;double gl_wcroll;double gl_wcyaw;

using namespace std;

UINT g_Texture[MAX_TEXTURES] = {0};

HWND g_hWnd;

RECT g_rRect;

HDC g_hDC;

HGLRC g_hRC;

HINSTANCE g_hInstance;

HINSTANCE hInstance;

MMRESULT idtimer_Opengl;

HWND CreateMyWindow(LPSTR strWindowName, int width, int height, DWORD dwStyle, HINSTANCE hInstance);// 生成用户窗口

LRESULT CALLBACK WinProc(HWND gl_hwnd, UINT message, WPARAM wParam, LPARAM lParam);//消息响应

void Init(HWND gl_hWnd);// 初始化整个程序

void InitializeOpenGL(int width, int height);// 初始化OpenGL

bool bSetupPixelFormat(HDC hdc);// 设置像素格式

void SizeOpenGLScreen(int width, int height);// 初始化投影变换

int MainLoop();//主循环

void RenderScene(double gl_x, double gl_y, double gl_z, double gl_roll, double gl_pitch, double gl_yaw) ;

void DeInit();// 释放程序占用的内存空间

void myDisplaycube();//绘制外框架

void glprintf();//输出文字

相关文档
最新文档