资源简介
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参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论