资源简介
简单的场景,希望大家自行脑补动画,可在原场景上扩充好多好多
代码片段和文件信息
// cameraroam.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include //计算旋转角
#include
#include
//angle绕y轴的旋转角允许我们旋转照相机;ratio:窗口宽高比(width/height)
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 snowman_display_list; //一个雪人的显示列表索引
//响应窗口位置、大小改变事件的回调函输
void changeSize(int w int h)
{
// 防止被0除.
if(h == 0)
h = 1;
ratio = 1.0f * w / h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); //设置视口为整个窗口大小
glViewport(0 0 w h); //设置可视空间
gluPerspective(45ratio11000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(x y z x + lxy + lyz + lz 0.0f1.0f0.0f);
}
//绘制1个雪人
void drawSnowMan()
{
glColor3f(1.0f 1.0f 1.0f);
//画身体
glTranslatef(0.0f 0.75f 0.0f);
glutSolidSphere(0.75f2020); //实心圆
// 画头
glTranslatef(0.0f 1.0f 0.0f);
glutSolidSphere(0.25f2020); //实心圆
// 画眼睛
glPushMatrix();
glColor3f(0.0f0.0f0.0f);
glTranslatef(0.05f 0.10f 0.18f);
glutSolidSphere(0.05f1010);
glTranslatef(-0.1f 0.0f 0.0f);
glutSolidSphere(0.05f1010);
glPopMatrix();
// 画鼻子
glColor3f(1.0f 0.5f 0.5f);
glRotatef(0.0f1.0f 0.0f 0.0f);
glutSolidCone(0.08f0.5f102); //实心圆锥体
}
//创建绘制雪人的显示列表
GLuint createDL()
{
GLuint snowManDL;
//生成一个显示列表号
snowManDL = glGenLists(1); // 开始显示列表
glNewList(snowManDLGL_COMPILE); // call the function that contains
// the rendering commands
drawSnowMan(); // endList
glEndList();
return(snowManDL);
}
//初始化场景
void initScene()
{
glEnable(GL_DEPTH_TEST);
snowman_display_list = createDL();
}
//绘制地面和36个1雪人
void renderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//使用四边形画了一个地面
glColor3f(0.9f 0.9f 0.9f);
glBegin(GL_QUADS);
glVertex3f(-100.0f 0.0f -100.0f);
glVertex3f(-100.0f 0.0f 100.0f);
glVertex3f( 100.0f 0.0f 100.0f);
glVertex3f( 100.0f 0.0f -100.0f);
glEnd();
//画了36个雪人
for(int i = -3; i < 3; i++)
for(int j=-3; j < 3; j++) {
glPushMatrix();
glTranslatef(i*10.00j * 10.0);
glCallList(snowman_display_list);
glPopMatrix();
}
glutSwapBuffers()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4791 2010-11-04 12:04 cameraroam - 副本\cameraroam.cpp
文件 4584 2010-11-04 08:24 cameraroam - 副本\cameraroam.dsp
文件 545 2010-11-04 08:24 cameraroam - 副本\cameraroam.dsw
文件 50176 2010-12-28 16:18 cameraroam - 副本\cameraroam.ncb
文件 59904 2010-12-28 16:18 cameraroam - 副本\cameraroam.opt
文件 254 2010-12-28 16:18 cameraroam - 副本\cameraroam.plg
文件 24596480 2010-12-28 16:59 cameraroam - 副本\cameraroam.sdf
文件 886 2010-12-28 16:44 cameraroam - 副本\cameraroam.sln
..A..H. 10240 2010-12-28 16:59 cameraroam - 副本\cameraroam.suo
文件 7039 2010-12-28 16:42 cameraroam - 副本\cameraroam.vcxproj
文件 1194 2010-12-28 16:42 cameraroam - 副本\cameraroam.vcxproj.filters
文件 143 2010-12-28 16:42 cameraroam - 副本\cameraroam.vcxproj.user
文件 2 2010-12-28 16:55 cameraroam - 副本\Debug\cameraroam.exe.em
文件 68 2010-12-28 16:55 cameraroam - 副本\Debug\cameraroam.exe.em
文件 117 2010-12-28 16:56 cameraroam - 副本\Debug\cameraroam.lastbuildstate
文件 1562 2010-12-28 16:56 cameraroam - 副本\Debug\cameraroam.log
文件 14741 2010-11-05 08:44 cameraroam - 副本\Debug\cameraroam.obj
文件 203928 2010-11-04 08:24 cameraroam - 副本\Debug\cameraroam.pch
文件 451584 2010-11-05 08:44 cameraroam - 副本\Debug\cameraroam.pdb
文件 0 2010-12-28 16:56 cameraroam - 副本\Debug\cameraroam.unsuccessfulbuild
文件 216 2010-12-28 16:55 cameraroam - 副本\Debug\cameraroam_manifest.rc
文件 1630 2010-12-28 16:45 cameraroam - 副本\Debug\cl.command.1.tlog
文件 3006 2010-12-28 16:45 cameraroam - 副本\Debug\CL.read.1.tlog
文件 786 2010-12-28 16:45 cameraroam - 副本\Debug\CL.write.1.tlog
文件 2 2010-12-28 16:56 cameraroam - 副本\Debug\li
文件 2 2010-12-28 16:56 cameraroam - 副本\Debug\li
文件 2 2010-12-28 16:56 cameraroam - 副本\Debug\li
文件 598 2010-12-28 16:55 cameraroam - 副本\Debug\rc.command.1.tlog
文件 330 2010-12-28 16:55 cameraroam - 副本\Debug\rc.read.1.tlog
文件 338 2010-12-28 16:55 cameraroam - 副本\Debug\rc.write.1.tlog
............此处省略13个文件信息
- 上一篇:通用量规辅助设计程序V3.51
- 下一篇:Tecplot详细经典教程
评论
共有 条评论