• 大小: 1.62MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-12
  • 语言: 其他
  • 标签: 立体树  

资源简介

opengl绘制的立体树场景,能鼠标键盘互动,立体美观,技术实用

资源截图

代码片段和文件信息

// class.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include
#include              //计算旋转角
#include  
#include
#include  
#pragma comment(lib“OpenGL32.lib“)
#pragma comment(lib“glu32.lib“)
#pragma comment(lib“glaux.lib“)
GLuint texture[4]; // Storage For One Texture ( NEW )
GLfloat LightAmbient[]= { 0.92f 0.92f 0.38f 0.0f };
GLfloat LightDiffuse[]= { 0.92f 0.92f 0.38f 0.0f };
GLfloat LightPosition[]= { 0.0f 0.0f 1.0f 0.0f };/**/
 //angle绕y轴的旋转角允许我们旋转照相机;ratio:窗口宽高比(width/height)
GLfloat xRot; // 绕X轴旋转的角度
GLfloat yRot; // 绕Y轴旋转的角度
//GLfloat LightAmbient[]= { 0.5f 0.5f 0.5f 1.0f };
//GLfloat LightDiffuse[]= { 1.0f 1.0f 1.0f 1.0f };
//GLfloat LightPosition[]= { 0.0f 0.0f 2.0f 1.0f };
int LastXPosLastYPos; //上次鼠标点击处x、y坐标
BOOL IsLBDown = FALSE; //鼠标左键是否按下
static float angle=0.0ratio;    
static float x=0.0fy=1.75fz=5.0f;    //照相机位置
static float lx=0.0fly=0.0flz=-1.0f;  //一个向量用来指示我们的视线方向
static GLint picture_display_list;   //一个雪人的显示列表索引/*
void SetupRC()
 {
// 设置光源参数
    GLfloat ambientLight[] = { 1.0f 1.0f 1.0f 1.0f };//环境光
GLfloat diffuseLight[] = { 0.92f 0.92f 0.38f 1.0f };//漫反射
GLfloat specularLight[] = { 1.0f 1.0f 1.0f 1.0f };//镜面反射
GLfloat lightPos[] = { -1000.0f 1000.0f 1000.0f 1.0f };//齐次坐标中的光源位置
glEnable( GL_DEPTH_TEST ); // 使能深度检测
glEnable( GL_COLOR_MATERIAL ); // 使能材质
glEnable( GL_LIGHTING ); // 使能光照
glLightfv( GL_LIGHT0 GL_AMBIENT ambientLight );
glLightfv( GL_LIGHT0 GL_DIFFUSE diffuseLight );
glLightfv( GL_LIGHT0 GL_SPECULAR specularLight );
glLightfv( GL_LIGHT0 GL_POSITION lightPos );
glEnable( GL_LIGHT0 ); // 使能灯光 0
glColorMaterial( GL_FRONT GL_AMBIENT_AND_DIFFUSE );
glMaterialfv( GL_FRONT GL_SPECULAR specularLight );
glMateriali( GL_FRONT GL_SHININESS 100 );//镜面反射指数
glClearColor( 0.0f 0.0f 0.0f 1.0f ); // 设置背景色

 }/**/
#define BLACK 1
#define BROWN 2
#define BLUE 3
#define YELLOW 4
//预定义颜色值
float red=1.0;
float green=0.0;
float blue=0.0;
//响应窗口位置、大小改变事件的回调函输
void processMenuEvents(int option)
{
//option,就是传递过来的value的值。
   switch (option)
   {
     case BLACK :
         red = 0.0;
         green = 0.0;
         blue = 0.0;
     break;
     case BROWN :
         red = 0.55;
         green = 0.55;
         blue = 0.32;
 break;
 case BLUE :
 red = 0.0;
 green = 0.0;
 blue = 1.0;
 break;
 case YELLOW :
 red = 1.0;
 green = 1.0;
 blue = 0.0; 
 break;
   }
}
void createGLUTMenus()
{
int menu;
// 创建菜单并告诉GLUT,processMenuEvents处理菜单事件。
   menu = glutCreateMenu(processMenuEvents);//给菜单增加条目
   glutAddMenuEntry(“Black“BLACK);
   glutAddMenuEntry(“Blue“BLUE);
   glutAddMenuEntry(“Brown“BROWN);
   glutAddMenuEntry(“Yellow“YELLOW);
   // 把菜单和鼠标右键关联起来。
   glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void changeSize(int w int h)         
{          
// 防止被0除.        
if(h == 0)      

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-12-25 14:42  3dtree\
     文件       48465  2010-02-14 05:24  3dtree\042.bmp
     文件       74373  2010-02-14 05:26  3dtree\044 .bmp
     文件      393272  2011-12-29 14:44  3dtree\045.bmp
     文件      786486  2005-06-03 16:49  3dtree\5.bmp
     文件       94103  2010-02-14 05:35  3dtree\BG.bmp
     文件       66614  1999-09-25 20:19  3dtree\Crate.bmp
     目录           0  2012-12-25 14:42  3dtree\Debug\
     文件        1939  2011-12-27 10:40  3dtree\Debug\StdAfx.obj
     文件      245834  2011-12-29 14:45  3dtree\Debug\class.exe
     文件      440232  2011-12-29 14:45  3dtree\Debug\class.ilk
     文件       67982  2011-12-29 14:45  3dtree\Debug\class.obj
     文件      187200  2011-12-27 10:40  3dtree\Debug\class.pch
     文件      680960  2011-12-29 14:12  3dtree\Debug\class.pdb
     文件      156672  2011-12-29 15:55  3dtree\Debug\vc60.idb
     文件      233472  2011-12-29 14:12  3dtree\Debug\vc60.pdb
     文件      196664  1999-09-09 03:50  3dtree\FLOOR.BMP
     文件      196664  1999-09-27 13:13  3dtree\Ground.BMP
     文件        1202  2011-12-27 10:32  3dtree\ReadMe.txt
     文件         292  2011-12-27 10:32  3dtree\StdAfx.cpp
     文件         667  2011-12-27 10:32  3dtree\StdAfx.h
     文件       11185  2011-12-29 14:12  3dtree\class.cpp
     文件        4546  2011-12-28 16:30  3dtree\class.dsp
     文件         535  2011-12-27 10:32  3dtree\class.dsw
     文件       58368  2011-12-29 15:59  3dtree\class.ncb
     文件       59904  2011-12-29 15:59  3dtree\class.opt
     文件         904  2011-12-29 14:45  3dtree\class.plg
     目录           0  2012-12-25 14:42  3dtree\data\
     文件      393272  2011-12-29 14:44  3dtree\data\045.bmp
     文件       49208  2011-12-29 14:45  3dtree\data\w2.bmp
     文件       49208  2011-12-29 14:45  3dtree\w2.bmp
............此处省略0个文件信息

评论

共有 条评论

相关资源