您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > CGDIP04-图形显示技术
计通学院计算机科学系图形图像处理1第4章图形显示技术2本章目标三维图形显示流程34.6三维图形显示一、背景1.在二维屏幕上如何显示三维物体?显示器屏幕、绘图纸等是二维的显示的图形对象是三维的2.解决方法(1)投影(降维):类似相机照相(2)三维显示设备(正在研制中)44.6三维图形显示二、平面几何投影1.投影(Projection)将n维的点变换成小于n维的点将3维的点变换成2维的点(1)投影中心(COP:CenterofProjection)视觉系统—观察点、视点电影放映机—光源照相机—光心(2)投影面不经过投影中心如:平面-照相机底片曲面-球幕电影,视网膜54.6三维图形显示(3)投影线从投影中心向物体上各点发出的射线两类射线直线;曲线2.平面几何投影投影面是平面投影线为直线3.平面几何投影分类1平行投影(parallelprojection)投影中心与投影平面之间的距离为无限2透视投影(perspectiveprojection)投影中心与投影平面之间的距离为有限(a)(b)投影线64.6三维图形显示示例投影中心与投影平面之间的距离为无限投影中心与投影平面之间的距离为有限平行投影透视投影74.6三维图形显示三、透视投影1.定义:投影中心与投影平面之间的距离为有限2.例子:投影仪显示系统,视觉系统3.灭点(vanishingpoint)不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点灭点的个数无限4.主灭点:平行于坐标轴的平行线的灭点。一点透视:1个主灭点两点透视:2个主灭点三点透视:3个主灭点84.6三维图形显示5.实例6.透视投影特点产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。94.6三维图形显示四、平行投影1.投影中心与投影平面之间的距离为无限是透视投影的极限状态投影线方向投影平面104.6三维图形显示2.三视图:正视图、侧视图和俯视图正视图侧视图俯视图114.6三维图形显示五、投影变换1.定义:三维坐标转换成二维坐标的变换过程2.观察坐标系当投影中心移动时投影平面也会变化,这样投影变换也会变化。如果投影平面和投影中心固定就不会变化。依赖于投影平面建立的三维坐标系uvn。如照相机所在的坐标系。这个坐标系中投影平面和投影中心固定。投影计算时需要将世界坐标系坐标转换为观察坐标系坐标124.6三维图形显示3.透视投影变换投影平面----n=0投影中心----(0,0,d)问题----在uvn中,投影平面为n=0,投影中心为(0,0,d),待投影点为P(up,vp,np),求投影点QCOPCOP134.6三维图形显示投影线的参数方程投影平面方程n=0Q点的坐标),0[)(tddntnvtvutuppp0)/(1)/(1QPPQPPQndnvvdnuu由此式可解释为什么透视投影产生近大远小的视觉效果144.6三维图形显示透视投影变换矩阵1100000000100001dMperPMQper1点透视非0元素个数决定几点透视154.6三维图形显示4.平行投影变换在uvn中,投影平面为n=0,投影方向为(0,0,-1),待投影点为P,求投影点Q164.6三维图形显示投影线的参数方程投影平面方程n=0Q点的坐标),0[ttdnvvuupp0QPQPQnvvuu174.6三维图形显示平行投影变换矩阵1000000000100001ortMPMQort184.6三维图形显示5.透视投影与平行投影之间的关系1100000000100001dMper1000000000100001ortM194.6三维图形显示6.例:假设投影参考点在(0,0,2),投影平面为n=0,写出该透视投影变换矩阵,此时的投影为几点透视?计算线段Q1(6,6,-6)Q2(6,1,-6)和Q3(6,6,-8)Q4(6,1,-8)投影后的线段,并就线段Q1Q2和Q3Q4投影结果说明透视投影的特点。12/100000000100001perM透视投影变换矩阵:一点透视解:40661666perMQ1投影后的坐标为Q1’(1.5,1.5,0)Q2投影后的坐标为Q2’(1.5,0.25,0)Q3投影后的坐标为Q3’(1.2,1.2,0)Q4投影后的坐标为Q4’(1.2,0.2,0)大远小的效果,所以透视投影产生近而但前者离投影参考点近长度一样和125143214321'''',.,QQQQQQQQ204.6三维图形显示六、三维图形显示流程图*说明(1)模型变换:从局部(模型)坐标系到世界坐标系的变换观察变换:从世界坐标系到观察坐标系的变换(2)视见体是限制的可见范围。214.7MatLab相关函数一、三维线画图1.函数plot3格式:plot3(X,Y,Z,'PropertyName',PropertyValue,...)2.例1:三维螺旋曲线(sin(t),cos(t),t)t=0:pi/50:10*pi;subplot(1,2,1);plot3(sin(t),cos(t),t)gridonaxissquaresubplot(1,2,2);plot3(sin(t),cos(t),t,'color','r','linewidth',3)axissquareaxisoff224.7MatLab相关函数3.例2:宝石项链t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view([-82,58]);boxon;legend('链','宝石');234.7MatLab相关函数二、网格图形和表面图形1.多边形函数patch格式(1)patch(X,Y,Z,C);/%X,Y,Z是坐标;C是颜色例:clearx=[00;01;11];y=[11;22;21];z=[11;-51;11];tcolor(1,1,1:3)=[100];tcolor(1,2,1:3)=[.7.7.0];patch(x,y,z,tcolor)view(3)244.7MatLab相关函数格式(2)patch(...'PropertyName',PropertyValue...)当‘PropertyName’为以下属性时的值表示:'faces',表面多边形索引表,m*k矩阵,一行表示k边形,有m个'vertices',顶点坐标,n*3矩阵,n是顶点数'facevertexCdata',顶点颜色'facecolor',面的颜色插值方式,可取'flat'和'interp'254.7MatLab相关函数例:绘制正方体网格图和表面图vert=[111;121;221;211;112;122;222;212];face=[1234;2673;4378;8415;6512;5678];tcolor=[000;001;010;011;100;101;110;111];subplot(1,3,1);patch('faces',face,'vertices',vert,'facecolor','w');view(3);subplot(1,3,2);patch('faces',face,'vertices',vert,'facevertexCdata',tcolor,'facecolor','flat');view(3);subplot(1,3,3);patch('faces',face,'vertices',vert,'facevertexCdata',tcolor,'facecolor','interp');view(3);264.7MatLab函数三、视点变化1.相机变化函数:view格式:view(az,el);az为方位角,el为仰视角view([x,y,z]);指定观察点view(3);3表示三维。方位角默认值分别为az=-37.5,el=30仰视角el方位角az视点274.7MatLab相关函数2.例:不同视角下绘制峰形图subplot(2,2,1);mesh(peaks);view(-37.5,30);title('az=-37.5,el=30');subplot(2,2,2);mesh(peaks);view(-10,15);title('az=-10,el=15');subplot(2,2,3);mesh(peaks);view(30,-37.5);title('az=30,el=-37.5');subplot(2,2,4);mesh(peaks);view(15,-10);title('az=15,el=-10');284.7MatLab相关函数四、三维曲面平面网格点生成函数:[X,Y]=meshgrid(x,y)三维网线图:mesh(X,Y,Z)网面图:surf(X,Y,Z)如:绘制马鞍面x=-4:0.2:4;[X,Y]=meshgrid(x,x);Z=X.^2/9-Y.^2/9;subplot(1,2,1);mesh(X,Y,Z);title('马鞍面网线图');subplot(1,2,2);surf(X,Y,Z);title('马鞍面网面图')
本文标题:CGDIP04-图形显示技术
链接地址:https://www.777doc.com/doc-2904600 .html