资源简介
一个用OpenGL写的3D很萌的企鹅,实现了鼠标控制旋转,键盘o和p设置正交投影和透视投影。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#define PI 3.141592
static float c= PI/180.0f; //弧度和角度转换参数
static int du = 90oldmy = -1oldmx = -1; //du是视点绕y轴的角度opengl里默认y轴是上方向
static float r = 2.0fh = 0.0f; //r是视点绕y轴的半径h是视点高度即在y轴
static float width = 500 height = 500;
static bool isPers = true;
void init()
{
glClearColor (1.0 1.0 1.0 1.0);
glShadeModel (GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINTGL_NICEST);
const GLfloat light_ambient[] = { 0.1f 0.1f 0.1f 1.0f };
const GLfloat light_diffuse[] = { 1.0f 1.0f 1.0f 1.0f };
const GLfloat light_specular[] = { 1.0f 1.0f 1.0f 1.0f };
const GLfloat light_position[] = { 0.5f 0.5f -0.5f 1.0f };
const GLfloat mat_ambient[] = { 0.5f 0.5f 0.5f 1.0f };
const GLfloat mat_diffuse[] = { 0.5f 0.5f 0.5f 1.0f };
const GLfloat mat_specular[] = { 0.3f 0.3f 0.3f 1.0f };
const GLfloat high_shininess[] = { 100.0f };
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0 GL_AMBIENT light_ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE light_diffuse);
glLightfv(GL_LIGHT0 GL_SPECULAR light_specular);
glLightfv(GL_LIGHT0 GL_POSITION light_position);
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient);
glMaterialfv(GL_FRONT GL_DIFFUSE mat_diffuse);
glMaterialfv(GL_FRONT GL_SPECULAR mat_specular);
glMaterialfv(GL_FRONT GL_SHININESS high_shininess);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);
//关闭背面顶点的计算
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE GL_FALSE);
}
void display()
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
if(isPers){
gluPerspective(50 1 1 10);
gluLookAt( r * cos(c * du) h r * sin(c * du)
0 0 0
0 1 0);
} else {
glLoadIdentity();
gluOrtho2D(-(GLdouble) height/height (GLdouble) height/height -(GLdouble) height/height (GLdouble) height/height);
}
static int list = 0;
if( list == 0 )
{
// 嘴的数组
GLfloat PointA[] = {0 0.0 0.28}
PointB[] = {-0.15 0.1 0.28}
PointC[] = {0.15 0.1 0.28}
PointD[] = {0 0.1 0.45}
PointE[] = {0 0.15 0.28};
GLfloat ColorR[] = {0 0 1};
// 组成嘴的六个三角形
glNewList(list GL_COMPILE);
glColor3f(1 0.6 0);
glBegin(GL_TRIANGLES);
// 平面BDC
glColor3f(1 0.6 0);
glVertex3fv(PointC);
glColor3f(1 1.0 0);
glVertex3fv(PointD);
glColor3f(1 0.6 0);
glVertex3fv(PointB);
// 平面ADB
glColor3f(1 0.6 0);
glVertex3fv(PointA);
glColor3f(1 0.6 0);
glVertex3fv(PointB);
glColor3f(1 0.8 0);
glVertex3fv(PointD);
// 平面ACD
glColor3f(1 1.0 0);
glVertex3fv(PointD);
glColor3f(1 0.6 0);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 75776 2013-10-13 22:28 Debug\Homework.exe
文件 1462432 2013-10-13 22:28 Debug\Homework.ilk
文件 896000 2013-10-13 22:28 Debug\Homework.pdb
文件 572 2013-10-13 22:28 Homework\Debug\cl.command.1.tlog
文件 22226 2013-10-13 22:28 Homework\Debug\CL.read.1.tlog
文件 264 2013-10-13 22:28 Homework\Debug\CL.write.1.tlog
文件 53 2013-10-13 22:28 Homework\Debug\Homework.lastbuildstate
文件 1226 2013-10-13 22:28 Homework\Debug\Homework.log
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
文件 2 2013-10-13 22:28 Homework\Debug\li
............此处省略73个文件信息
- 上一篇:5G十个应用场景
- 下一篇:稀有资源宏华at2000印花分色软件
相关资源
- AC3D破解版免费
- 运用DirectX9绘制太阳系
- opengl 实现的机器人行走
- Flac3d6.00.60破解版
- OpenGL 纹理 二重纹理
- Bezier曲面 Coons曲面 B样条曲面绘制(用
- unity3d 赛车DEMO
- Opengles2.0地球
- 南京航空航天大学Photoshop与3dmax大作业
- Introduction to 3D Game Programming with Direc
- Papervision3D236223
- unity3d鱼类游动AI demo
- 三星AMOLED驱动芯片S6E63D6资料
- 计算机图形学-基于OpenGL的3D迷宫漫游
- 大量Opengl
- Opengl 太阳系
- 用opengl绘制的兔子
- LSM303DLH 中文pdf (磁力计+ 线性加速
- 基于OpenGL的描点绘制Bezier曲线
- 2d toolkit
- BK2423DesignKit 2.0
- 3dmax航母文件
- opengl天空盒的效果源代码
- Qt5版NeHe OpenGL教程6-10
- 基于opengl下的选择物体局部放大
- Unity3D UGUI官方案例
- DirectX3D太阳系
- 网页3D模型显示
- Unity3D超炫的水效果
- OPENGL粒子系统之喷泉
评论
共有 条评论