3D基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
glutReshapeFunc(reshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glutMainLoop();
return0;
}
voiddisplay()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
voiddisplay();
voidmouse(intbtn,intstate,intx,inty);
voidcolorcube(void);
voidspinCube();
intAPIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,w/h,1,60);//定义透视投影投影观察体
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
voidspinCube()
{
theta[axis]+=1.0;
实验开发环境:
硬件要求:
PC机,主流配置,最好为独立显卡,显存512M以上。
软件环境:
操作系统:Windows XP。
语言开发工具:Microsoft Visual studio 2008,Visual C++。
并安装OpenGL图形函数库
实验要求:
1.当场检查,计现场分
2.实验所有步骤所生成的效果截图拷贝到实验报告文档里备查,并附上相应的代码。WORD文档命名方式:学号姓名-实验序号-实验名称。
glutWireTeapot(1.5);//线框模式
glPushMatrix();
glTranslatef(0,-1,0);
glRotatef(90,2,0,0);
glColor3f(1,0,0.2);
glutWireTorus(0.2,1.5,25,25);//线框模式
glPopMatrix();
glutSwapBuffers();
}
voidinit()
{
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glEnable(GL_DEPTH_TEST);
}
voidmouse(intbtn,intstate,intx,inty)
{
if(btn==GLUT_LEFT_BUTTON && state==GLUT_DOWN) axis=0;
if(theta[axis]>360.0) theta[axis]-=360.0;
glutPostRedisplay();
}
实验课完成程度与表现自我评价:
比例:20%
已经基本完成,但是好像圆环和茶壶贴合那个地方不是那么准确。
思考题:
1.修改目标点与视点,显示结果有何不同?
2.视点与目标点不变,修改观察体大小,显示结果有什么规律?
实验内容与步骤小结、主要截图、核心代码实现:
比例:50%
#include"stdafx.h"
#include<glut.h>
staticGLfloat theta[]={0.0,0.0,0.0};
staticGLint axis=2;
voidreshape(intw,inth);
voidinit();
实验的体会、收获与建议(结论)
比例:30%
根据老师上课讲的内容,还是能够顺利的完成,但是坐标好像没有调的那么精确,两个图像接合点有点误差。
评阅教师特殊评语:
评阅教师:
日期:
if(btn==GLUT_MIDDLE_BUTTON && state==GLUT_DOWN) axis=1;
if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) axis=2;
}
voidreshape(intw,inth)
{
glViewport(0,0,w,h);
3.正交投影与透视投影有何不同?
1.修改不同视点,目标点不动
gluLookAt(5,0,0,0,0,0,0,1,0);:
修改目标点,视点不动:
2.修改观察体大小
gluPerspective(50,w/h,1,60);
值越大,观察茶壶越小。反之。
3.正交投影与透视投影有何不同?
正交投影比透视投影观察体的亮度暗些,经纬线少一些。
glutInit(&argc, argv);//初始化GLUT库;
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(800,800);
glutCreateWindow("colorcube");
init();
glLoadIdentity();
gluLookAt(0,0,8,0,0,0,0,1,0);
glRotatef(theta[0],1.0,0.0,0.0);
glRotatef(theta[1],0.0,1.0,0.0);
glRotatef(theta[2],0.0,0.0,1.0);
glColor3f(0,1,0.6);
计算机图形学实验报告
实验报告文件命名方式:学号姓名_实验序号_实验名称.doc
Байду номын сангаас姓名
学号
专业
任课教师
实验教师
评阅教师
实验地点
书写日期
2013-8-7
实验课时间
实验得分
实验序号与名称:3D基础
实验目的:
1.熟悉3D基本编程
2.熟悉视点观察函数的设置和使用
3.熟悉投影变换函数的设置和使用
4.熟悉基本3D图元的绘制
LPTSTR lpCmdLine,
intnCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
char*argv[] = {"hello "," "};
intargc = 2;// must/should match the number of strings in argv
相关文档
最新文档