《三维投影变换.ppt》由会员分享,可在线阅读,更多相关《三维投影变换.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、三维投影变换 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望三视图-1工程制图中常用的三视图,是由空间中一个立体向3个互相垂直的投影面作正投影得到的。这三个投影面分别称为:正投影面(V面)、侧投影面(W面)、水平投影面(H面)。xyzO三视图-2 1。正投影图正投影图是将立体投影面作正投影得到的(从上向下)。变换矩阵为:TV=1 0 0 00 0 0 00 0 1 00 0 0 1x*y*z*1=x y z 1TV=x 0 z 1三视图-3 2.侧投影视图 立体侧
2、投影图的形成过程是:先将立体向侧立投影面作投影(x坐标取0);然后将投影面绕z轴旋转90,使其与正立投影面处于同一平面;最后使图形沿x轴负向平移一个距离d1,使正投影图和侧投影图之间保持一个距离。三视图-4TW=0 0 0 00 1 0 00 0 1 00 0 0 1 cos90 sin90 0 0-sin90 cos90 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0-d1 0 0 1 0 0 0 0-1 0 0 0 0 0 1 0-d1 0 0 1=x*y*z*1=x y z 1TW=-y-d1 0 z 1三视图-5 3.水平投影视图水平投影图的形成
3、过程是:先将水体向侧立投影面作投影(z坐标取0);然后将投影面绕x轴旋转-90,使其与正立投影面处于同一平面;最后使图形沿z轴负向平移一个距离d3,使正投影图和侧投影图之间保持一个距离。三视图-6TH=1 0 0 00 1 0 00 0 0 00 0 0 11 0 0 00 cos(-90)sin(-90)00-sin(-90)cos(-90)00 0 0 11 0 0 00 1 0 00 0 1 00 0-d3 11 0 0 00 0 -1 00 0 0 00 0 -d3 1=x*y*z*1=x y z 1TH=x 0-y-d3 1透视投影图-11。投影及投影变换的定义 投影是将n维空间点变
4、换成小于n维点。将三维空间中的点变换到二维平面上的过程称为投影变换。透视投影图-22。透视投影和平行投影 投影变换按照投影中心与投影平面的距离是否有限而分为透视投影和平行投影。当投影中心到投影平面的距离是有限的,投影变换称为透视投影,否则成为平行投影。3。透视投影 设投影中心的坐标为(x0,y0,z0),投影平面的方程为A*x+B*y+C*z+D=0,对于空间中任意一点(x,y,z)设其在投影平面上的投影为(xp,yp,zp)。透视投影图-3根据(x0,y0,z0)、(x,y,z)、(xp,yp,zp)三点共线即满足:其中:A*(x-x0)+B*(y-y0)+C*(z-z0)0zp=z0+t*
5、(z-z0)(3)yp=y0+t*(y-y0)(2)xp=x0+t*(x-x0)(1)A*xp+B*yp+C*zp+D=0(4)t0透视投影图-4解得t=A*x0+B*y0+C*z0+DA*(x-x0)+B*(y-y0)+C*(z-z0)代t人(1)、(2)、(3)就得到变换结果。我们可以将上述方程写成矩阵的形式,但由于比较复杂,由同学们课下做为练习试一下。透视投影图-5几个简单的透视投影变换1。投影中心为(-1/p,0,0),投影平面为x=0。则t=1p*x+1xp=0yp=yp*x+1zp=zp*x+1透视投影图-6投影变换的矩阵为0 0 0 p0 1 0 00 0 1 00 0 0 1T
6、=类似地,我们可以对y轴和z轴做相应的变换。透视投影图-7 2。投影中心在(0,0,0)投影平面为x=1/p;则p*x1t =xp=1/pyp=yp*xzp=zp*x1 0 0 p0 1 0 00 0 1 00 0 0 0T=透视投影图-8 对于透视投影来讲,一束平行于投影平面的平行线的投影可保持平行,不平行与投影平面的平行线的投影会汇聚到一个点,这个点称为灭点。灭点可以看作是无穷远处的一点做投影平面上 的投影。透视投影的灭点有无限多个,不同方向,不同方向的平行线在投影平面上就能形成不同的灭点。坐标轴方向上的平行线在投影平面上形成的灭点又称为主灭点。由于三维空间共有三个坐标轴,因此最多有三个灭
7、点。透视投影图-9 可以简单的推断:1、与一个坐标轴垂直的平面作为投影平面的话,该平面上的投影一定是一点投影。2、与两个坐标轴相交且与第三个坐标轴不相交的平面作为投影平面的话,该平面上的投影一定是两点投影。3、与三个坐标轴都相交且不含有任何坐标轴的平面作为投影平面的话,该平面上的投影一定是三点投影。视向边换-11、世界坐标系和观察坐标系 前面我们处理图形问题时通常使用的是笛卡尔坐标系,这种坐标系一般成为“世界坐标系”或“用户坐标系”。以观察点(即视点)为原点,以观察点到物体的方向为z轴,以水平向右且与z轴垂直的方向为x轴,与x轴和z轴垂直向上的方向做为y轴,这样所成的坐标系称为观察坐标系。视向
8、边换-2 建立一个观察坐标系取决于两个因素,一个是观察点的位置,另外一个是观察方向。为了方便研究,通常将观察点到世界坐标系的原点的方向规定为观察方向。2、视向变换 把世界坐标系中的点P(x,y,z)变换为观察坐标系中的点Q(x*,y*,z*)的过程称为“视向变换”视向边换-31.平移坐标系(设观察点为(x0,y0,z0))xwzwywOExyz视向边换-4T1=1 0 0 0 0 1 0 0 0 0 1 0-x0 y0-z0 1x1=x-x0y1=y-y0z1=z-z0视向边换-52、绕x轴旋转90 xwzwywOExyz视向边换-6T2=1 0 0 0 0 0 -1 0 0 1 0 0 0
9、0 0 1x2=x1y2=y1cos90-z1sin90z2=y1sin90+z1 cos90视向边换-73、绕y轴旋转-角xwzwywOxyz视向边换-8T3=cos 0 -sin 0 0 1 0 0 sin 0 cos 0 0 0 0 1x3=x2cos+z2sin y3=y2z3=x2sin-z2 cossin=x 0/(x 02+y02)cos=y0/(x 02+y02)视向边换-94、绕x轴逆时针旋转角xwzwywOxyzE视向边换-10T4=1 0 0 00 cos-sin 00 sin cos 00 0 0 1x4=x3y4=y3 cos+z3sin z4=x3sin-z3 cossin=z 0/(x 02+y02+z02)cos=(x 02+y02)/(x 02+y02+z02)视向边换-115、改变x轴的方向:使其由原来的指向左边改变为指向右边。视向边换-12T5=-1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1x*=-x4y*=y4z*=z4视向边换-13通过上述5个基本变换矩阵的级联,可得视向变换矩阵
限制150内