投影变换
- 格式:ppt
- 大小:19.03 MB
- 文档页数:39
投影变换投影变换就是要确定一个取景体积,其作用有两个:1). 确定物体投影到屏幕的方式,即是透视投影还是正交投影。
2). 确定从图象上裁剪掉哪些物体或物体的某些部分。
投影变换包括透视投影和正交投影(平行投影)。
●透视投影透视投影的示意图如下,其取景体积是一个截头锥体,在这个体积内的物体投影到锥的顶点,用glFrustum()函数定义这个截头锥体,这个取景体积可以是不对称的,计算透视投影矩阵M,并乘以当前矩阵C,使C=CM。
void glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);该函数以透视矩阵乘当前矩阵left, right 指定左右垂直裁剪面的坐标。
bottom,top 指定底和顶水平裁剪面的坐标。
near,far 指定近和远深度裁剪面的距离,两个距离一定是正的。
程序函数gluPerspective()可以创建一个与调用glFrustum()所得到的同样形状的视图体,它创建的是一个沿视线关于x和y轴均对称的平截台体,在很多实际应用中都采用函数gluPerspective()。
void gluPerspective(GLdouble fovy,GLdouble aspect, GLdouble zNear,GLdouble zFar);fovy是在x-z平面内视区的角度,其值必须在区间【0.0,180.0】内。
Aspect为长宽比,是平截台体的宽度与高度之比。
zNear和zFar的值是视点(沿z轴负向)与两个裁剪平面的距离。
参数恒为正。
图1透视投影示意图●正交投影正交投影的示意图见下:其取景体积是一个各面均为矩形的六面体,用glOrtho()函数创建正交平行的取景体积,计算正交平行取景体积矩阵M,并乘以当前矩阵C,使C=CM。
void glOrtho(Gldouble left,Gldouble right,Gldouble bottom,Gldouble top,Gldoublenear,Gldouble far);该函数以正交投影矩阵乘当前矩阵。
投影变换
1.投影变换
【知识点的知识】
将平面上每个点P 对应到它在直线l 上的投影P′(即垂足),这个变换称为关于直线l 的投影变换.变换的坐标公式和二阶矩阵为:
【解题方法点拨】
1.几种常见的线性变换
(1)恒等变换矩阵M=;
(2)旋转变换Rθ对应的矩阵是M=;
1/ 2
(3)反射变换要看关于哪条直线对称.例如若关于x 轴对称,则变换对应矩阵为M1=;若关于y 轴对称,则变换对应矩阵为M2=;若关于坐标原点对称,则变换对应矩阵M3=;
(4)伸压变换对应的二阶矩阵M=,表示将每个点的横坐标变为原来的k1 倍,纵坐标变为原来的k2 倍,
k1,k2 均为非零常数;
(5)投影变换要看投影在什么直线上,例如关于x 轴的投影变换的矩阵为M=;
(6)切变变换要看沿什么方向平移,若沿x 轴平移|ky|个单位,则对应矩阵M=,若沿y 轴平移|kx|个单位,则对应矩阵M=.(其中k 为非零常数).
2.线性变换的基本性质
设向量α=,规定实数λ与向量α的乘积λα=;设向量α=,β=,规定向量α与β的和α+β=.
(1)设M是一个二阶矩阵,α、β是平面上的任意两个向量,λ是一个任意实数,则①M(λα)=λMα,②M
(α+β)=Mα+Mβ.
(2)二阶矩阵对应的变换(线性变换)把平面上的直线变成直线(或一点).
2/ 2。