资源简介
opengl开发的台灯,上下左右控制台等角度,是opengl语言的综合运用
代码片段和文件信息
#include
#include
static GLfloat yrot = -100.0;//-100
static GLfloat zrot = 40.0;//20
static GLint spin = 0.0;
const GLfloat PI = 3.1415926f;
const GLfloat R = 10.0f;
GLUquadricObj *objCylinder = gluNewQuadric();
void init()
{
glClearColor(0.0 0.0 0.0 0.0);
glShadeModel(GL_SMOOTH);
//设置光源属性:环境光、镜面光、散色光
GLfloat light_ambient[] = {1 1 1 1.0};//{0.2 0.2 0.2 1.0};
GLfloat light_specular[] = {1.0 1.0 1.0 1.0};
GLfloat light_diffuse[] = {1.0 1.0 1.0 1.0};
GLfloat light_diffuse1[] = {0.5 0.5 0.5 0};
glLightfv(GL_LIGHT0 GL_AMBIENT light_ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE light_diffuse);
glLightfv(GL_LIGHT0 GL_SPECULAR light_specular);
GLfloat spot_direction[] = {0.0 -1.0 0.0};
GLfloat light_position [] = {13.0f -3 0.0};
GLfloat light_position1 [] = {0.0f 20 0.0 1.0};//固定光源
//移动光源初始化
glLightf(GL_LIGHT0 GL_SPOT_CUTOFF 40.0);
glLightfv(GL_LIGHT0 GL_POSITION light_position);
glLightfv(GL_LIGHT0 GL_SPOT_DIRECTION spot_direction);
//固定光源初始化 默认光源位置是 (不要删)
glLightfv(GL_LIGHT1 GL_AMBIENT light_ambient);
glLightfv(GL_LIGHT1 GL_DIFFUSE light_diffuse1);
//glLightfv(GL_LIGHT1 GL_POSITION light_position1);
//glLightfv(GL_LIGHT1 GL_SPOT_DIRECTION spot_direction);
//设置材料属性:镜面光、散色光、环境光
GLfloat mat_specular[] = {1.0 1.0 1.0 1.0};
GLfloat mat_diffuse[] = {1.0 1.0 1.0 1.0};
GLfloat mat_shininess [] = {100.0};
glMaterialfv(GL_FRONT_AND_BACK GL_DIFFUSE mat_diffuse);
glMaterialfv(GL_FRONT_AND_BACK GL_SPECULAR mat_specular);
glMaterialfv(GL_FRONT_AND_BACK GL_SHININESS mat_shininess);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);//开启移动光源
glEnable(GL_LIGHT1);//开启固定光源
glEnable(GL_DEPTH_TEST);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//画台灯底座
glPushMatrix();
glColor3f(0.2 0.8 0.2);
glTranslated(0.0 -20.0 10.0);
glScalef(16.0 1.0 12);
glutSolidCube(2.0);
glPopMatrix();
//画灯杆
//*******************注******************:gluCylinder画圆柱,初试状态沿着-Z轴方向
//灯杆第一段
glPushMatrix();
glColor3f(1.0 1.0 1.0);
glRotatef(90.0 1.0 0.0 0.0);
gluCylinder(objCylinder 1.0 1.0 21.0 100 100);// baseRadiustopRadius height slices stacks
glPopMatrix();
//灯杆第二段
glPushMatrix();
glRotatef(yrot 0.0f 1.0f 0.0f);
glRotatef(zrot 0.0f 0.0f 1.0f);
glColor3f(1.0 1.0 1.0);
glTranslatef(4.0 6.93 0.0);
glRotatef(90.0 1.0 0.0 0.0);
glRotatef(-30.0 0.0 1.0 0.0);
gluCylinder(objCylinder 1.0 1.0 8.0 100 100);// baseRadiustopRadius height slices stacks
glPopMatrix();
//灯杆第三段
glPushMatrix();
glRotatef(yrot 0.0f 1.0f 0.0f);
glRotatef(zrot 0.0f 0.0f 1.0f);
glColor3f(1.0 1.0 1.0);
glTranslatef(4.0 6.93 0.0);
glRotatef(90.0 1.0 0.0 0.0);
glRotatef(90.0 0.0 1.0 0.0);
gluCylinder(objCylinder 1.0 1.0 10.0 100 100);// baseRadiustopRadius height slices
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-10-21 07:36 台灯\Debug\
文件 42496 2014-07-15 13:40 台灯\Debug\台灯.exe
文件 310136 2014-07-15 13:40 台灯\Debug\台灯.ilk
文件 535552 2014-07-15 13:40 台灯\Debug\台灯.pdb
文件 5645 2014-03-18 17:11 台灯\light (2).cpp
文件 5965 2014-03-18 19:36 台灯\light (3).cpp
文件 7545 2014-04-01 15:23 台灯\light (4).cpp
文件 5518 2014-03-18 13:01 台灯\light.cpp
文件 28442624 2014-07-15 15:12 台灯\台灯.sdf
文件 885 2014-03-14 09:14 台灯\台灯.sln
文件 26112 2014-07-15 15:12 台灯\台灯.v11.suo
目录 0 2014-10-21 07:36 台灯\台灯\
目录 0 2014-10-21 07:36 台灯\台灯\Debug\
文件 1382 2014-07-15 13:40 台灯\台灯\Debug\cl.command.1.tlog
文件 3168 2014-07-15 13:40 台灯\台灯\Debug\CL.read.1.tlog
文件 912 2014-07-15 13:40 台灯\台灯\Debug\CL.write.1.tlog
文件 32620 2014-07-15 13:40 台灯\台灯\Debug\light.obj
文件 25600 2014-10-16 15:18 台灯\台灯\Debug\light.pdb
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
文件 2 2014-07-15 13:40 台灯\台灯\Debug\li
............此处省略62个文件信息
相关资源
- openGL下雨现象模拟
- OpenGL三维图形程序设计(Windows版)
- OpenGL实现鼠标旋转缩放平移操作
- Instagram Filters 破解了Instagram App的几十
- opengl 3d obj模型加载,贴图
- 实时计算机图形学 第二版英文版pdf格
- OpenGL实践三:水面涟漪的逼真绘制毕
- Opengl实现的Ray Casting 光线投射算法
- 天空盒(opengl)
- opengl图形学实验七 不同的光照渲染
- OpenGL-Nehe完整中文教程和全部源代码
- 扫描线填充算法的OpenGL实现
- OpenGL soil库与布置方法,位置
- 基于opengl的杯子模型
- opengl 红宝书 计算机图形学红宝书 图
- 一套基于QT、GDAL、OpenGL的遥感影像显
- OpenGL 画荷花
- OpenGL安装包+安装指导Windows平台
- freeglut,包括.dll、.h和.lib文件,完美
- OpenGL的虚拟校园漫游系统的设计与实
- 基于OpenGL的Loop网格细分
- OPenGL地层时适渲染LOD
- OpenGL使用画家算法实现隐藏面的消除
- OpenGL实现3D小车
- 基于VS2010的OpenGL 3D场景
- 使用OpenGL实现飞机动画
- OpenGL圣诞树
- 计算机图形学OpenGL——地月系
- opengl立体树
- OpenGL+FreeType渲染宋体中文
评论
共有 条评论