课程实验指导5-投影参考模板.doc
《课程实验指导5-投影参考模板.doc》由会员分享,可在线阅读,更多相关《课程实验指导5-投影参考模板.doc(8页珍藏版)》请在三一文库上搜索。
1、课程实验指导五实验5 投影1实验目的:了解透视图投影原理,利用VC+OpenGL实现立方体的一点、两点、三点透视图算法。2实验内容:(1) 理解投影原理;(2) 读懂示范代码;(3) 增加键盘控制,控制一点透视点产生正方体的移动、旋转效果;(4) 实现两点透图效果。3实验原理:本次实验内容为绘制立方体的一点透视图。透视投影按照主灭点的个数分为一点透视、二点透视和三点透视,如下图1所示。灭点灭点灭点灭点灭点灭点 图1 立方体的三类透视其中一点透视情况如图2所示,设z轴上有一观察点(即视点)V(0,0,d),从V点出发将物体上的点P( x, y, z)投影到XOY平面上得到P (x,y,0),由相
2、似三角形可知一点透视变换矩阵为:图2 一点透视示意1 / 8.(1)根据以上,可得一点透视变换的步骤如下:(1)将三维形体平移到适当位置lx、ly、lz;(2)令视点在z轴(0,0,d),利用上述公式(1)进行透视变换;4实验代码:/ Projection.cpp : Defines the entry point for the console application./#include stdafx.h#include #include #include struct Matrix double p44; Matrix operator*(Matrix &); Matrix();/单位矩阵
3、;Matrix:Matrix() for(long i=0;i4;i+) for(long j=0;j4;j+) if(i=j) pij = 1; else pij = 0; Matrix Multiply(Matrix& m1, Matrix& m2)Matrix m;for(int i=0;i4;i+)for(int j=0;j4;j+)for(int k=0;k4;k+)m.pij+=(m1.pik*m2.pkj);return m;struct Pt2D int x, y;Pt2D()x = 0; y = 0;Pt2D(int px, int py)x = px; y = py;str
4、uct Pt3D float x, y, z;Pt3D()x = 0; y = 0; z = 0;Pt3D(float px, float py, float pz)x = px; y = py; z = pz;struct FaceInfo /第一列为每个面的顶点数;其余列为面的顶点编号int num, idx1, idx2, idx3, idx4;FaceInfo()num = 0; idx1 = 0; idx2 = 0;idx3 = 0; idx4 = 0;FaceInfo(int fnum, int fidx1, int fidx2, int fidx3, int fidx4)num
5、= fnum; idx1 = fidx1; idx2 = fidx2;idx3 = fidx3;idx4 = fidx4;double lx = 480, ly = 460, lz = 240;double phi = 0;double d = -500;Matrix mT, mR, mP, mTemp, mA;Pt3D boxPt8;Pt2D boxPt2d8;FaceInfo fInfo6;void InitParameter()/初始化参数mT.p30 = lx; mT.p31 = ly;mT.p32 = lz;mR.p00 = cos(phi); mR.p02 = -sin(phi);
6、mR.p20 = sin(phi); mR.p22 = cos(phi);mP.p22 = 0;mP.p23 = -1/d;mTemp = Multiply(mT, mR);mA = Multiply(mTemp, mP);void Project(Pt3D pt, Pt2D &pt2D)/透视变换double ptH4;ptH0=pt.x;/ptH1=pt.y;ptH2=pt.z;ptH3=1;double res4;for(int i=0;i4;i+)resi = 0;for(i=0;i4;i+)for(int j=0;j4;j+)resi+=(ptHj*mA.pji);pt2D = Pt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 实验 指导 投影 参考 模板
链接地址:https://www.31doc.com/p-15004415.html