• 大小: 162KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 图形学  

资源简介

包含文档,可运行程序,源代码,涉及光照,纹理,键盘鼠标交互等等.zip

资源截图

代码片段和文件信息

#include    
#include     
#include     
#include    
#include  
//
#include 
#include 
#pragma comment(lib “openGL32.lib“)
#pragma comment(lib “glu32.lib“)
#pragma comment(lib “glaux.lib“)
#pragma comment( lib“openGL32.lib“ )
GLuint  texture[1];  // 存储一个纹理
GLfloat  xrot;   // X 旋转量
GLfloat  yrot;   // Y 旋转量
GLfloat  zrot;   // Z 旋转量
//

static int shoulder1 = 0;
static int shoulder2 = 0;
static int hand=0;
static int turn1=0;
static int tag=0; 


static int turn=0 ;//转弯
static float forward=0;//前进
static float elbow = 0 z=0;  
int w;   
int h;   
int font=(int)GLUT_BITMAP_8_BY_13;   
char s[30];   
int frametimeOwntimebase=0;


static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;
//是否停止转动
bool  IsStop=false;    
//光照  使用光源
GLfloat lightPos[] = { 1.0f 0.0f -1.0f 0.0f };
GLfloat  specular[] = { 1.0f 1.0f 1.0f 1.0f};//反射光
GLfloat  specref[] =  { 1.0f 1.0f 1.0f 1.0f };//
GLfloat  ambientLight[] = { 5.5f 5.5f 5.5f 10.0f};//环绕光
GLfloat  spotDir[] = { 0.0f 0.0f -1.0f };
GLboolean bEdgeFlag =1;




void showText(void);   
void resetPerspectiveProjection() ;    
void setOrthographicProjection() ;   
void renderBitmapString(float x float y void *fontchar *string);


//绘制纹理
AUX_RGBImageRec *LoadBMP(CHAR *Filename)    // 载入位图图象
{
 FILE *File=NULL;         // 文件句柄
 if (!Filename)          // 确保文件名已提供
 {
  return NULL;         // 如果没提供,返回 NULL
 }
 File=fopen(Filename“r“);       // 尝试打开文件
 if (File)           // 文件存在么?
 {
  fclose(File);         // 关闭句柄
  return auxDIBImageLoadA(Filename);    // 载入位图并返回指针
 }
 return NULL;          // 如果载入失败,返回 NULL
}

int LoadGLTextures()         // 载入位图(调用上面的代码)并转换成纹理
{
 int Status=FALSE;         // 状态指示器
 AUX_RGBImageRec *TextureImage[1];     // 创建纹理的存储空间
 memset(TextureImage0sizeof(void *)*1);   // 将指针设为 NULL
 // 载入位图,检查有无错误,如果位图没找到则退出
 if (TextureImage[0]=LoadBMP(“zi.bmp“))
 {
  Status=TRUE;         // 将 Status 设为 TRUE
  glGenTextures(1 &texture[0]);     // 创建纹理

  // 使用来自位图数据生成 的典型纹理
  glBindTexture(GL_TEXTURE_2D texture[0]);
  // 生成纹理
  glTexImage2D(GL_TEXTURE_2D 0 3 TextureImage[0]->sizeX TextureImage[0]->sizeY 0 GL_RGB GL_UNSIGNED_BYTE TextureImage[0]->data);
  glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR); // 线形滤波
  glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR); // 线形滤波
 }

 if (TextureImage[0])        // 纹理是否存在
 {
  if (TextureImage[0]->data)      // 纹理图像是否存在
  {
   free(TextureImage[0]->data);    // 释放纹理图像占用的内存
  }

  free(TextureImage[0]);       // 释放图像结构
 }
 return Status;          // 返回 Status
}

//设置背景设置光源
void SetupRC(void)  

glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT ambientLight);
glLightfv(GL_LIGHT0GL_DIFFUSEambientLight);
glLightfv(GL_LIGHT0GL_SPECULARspecular);
glLightfv(GL_LIGHT0GL_POSITIONlightPos);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-01-01 19:46  计算机图形学\
     目录           0  2015-12-31 15:51  计算机图形学\13计科3柯嘉少\
     目录           0  2016-01-01 19:47  计算机图形学\13计科3柯嘉少\可运行程序\
     文件      249901  2016-01-01 19:41  计算机图形学\13计科3柯嘉少\可运行程序\robort.exe
     文件      196664  2015-12-30 19:13  计算机图形学\13计科3柯嘉少\可运行程序\zi.bmp
     目录           0  2016-01-01 19:48  计算机图形学\13计科3柯嘉少\源代码\
     文件       17283  2016-01-01 19:41  计算机图形学\13计科3柯嘉少\源代码\robort.cpp
     目录           0  2016-01-03 01:14  计算机图形学\13计科3柯嘉少\说明文档\
     文件      175104  2016-01-03 01:14  计算机图形学\13计科3柯嘉少\说明文档\课设.doc

评论

共有 条评论