计算机图形学——投影
一、投影变换
由于显示器和绘图机只能用二维空间来表示图形,要显示三维图形就要把三维坐标表示的几何形体变换成二维坐标表示的图形,这就是图形的投影变换。
需要记住的一点是,计算机绘图是产生三维物体的二维图像。但在屏幕上绘制图形的时候,必须在三维坐标系下来考虑画法
在创建一个三维图形时,不要考虑二维平面图像。
投影变换的要素
视点(投影中心),投影平面
投影线,投影方向
投影变换的类型
透视投影:投影中心和投影面之间的距离是有限的
平行投影:投影中心和投影平面之间的距离是无限的
根据投影方向与投影平面之间的关系,平行投影分为正投影与斜投影
1、透视投影
2、平行投影
平行投影分为正投影(a)与斜投影(b)
正投影:投影方向与投影平面法向相同。常见的正投影类型有:
正视图投影:投影平面与z轴垂直;
俯视图投影:投影平面与y轴垂直;
侧视图投影:投影平面与x轴垂直;
等轴测投影: 投影平面的法向与每个坐标轴的夹角相等;
注意:在观察坐标系中进行正投影很方便
因为是按Z方向的投影,物体的投影图坐标与Z值无关
所以去掉Z变量便是三维物体的二维投影描述。
斜投影,常见的斜投影类型有:
斜等测投影:投影方向与投影平面成45度角,所以与投影平面垂直的直线段的投影与它本身的长度相等;
斜二测投影:投影方向和投影平面的夹角为arctan(2),所以与投影平面垂直的直线段的长度是它投影长度的2倍。
平行投影变换公式
3、透视投影和平行投影的区别
透视投影的投影中心和透视平面之间的距离是有限的,而平行投影的投影中心和投影平面之间的距离是无限的;
平行投影的投影线是相互平行的,因此,定义透视投影,要给出投影中心,对于平行投影,由于投影是相互平行的,只要给出投影方向就可;
透视投影的方式和人眼观察物体的方式相同,所以透视投影的真实感更强,而平行投影的真实感相对较差,但可以用于精确测量。
将三维物体变为二维图形的变换称为(投影变换),其有两种基本方式:(平行投影)、(透视投影)。
二、任意坐标系到观察坐标系中的变换
观察坐标系的建立
三、射影变换
做三维裁剪或消除隐藏线时,为简化算法和减少计算量,可把一个对象的透视图看成另一个对象的在同一投影平面上的正视图,并要求两个对象对应点坐标分量 的排序一致,直线对应直线,从而保证变换后的对象各部分之间的遮挡关系不会发生变化。
四、视见体到规范视见体的变换
有时为了突出图形的一部分,只把图形的某一部分显示出来,这时可以定义一个三维视见体(Viewing Volume)。平行投影时一般是一个平行六面体的视见体,透视投影时一般是一个棱台似的视见体。只有视见体内的物体能被投影在显示平面上,其他部分则不能。
在投影之前,三维空间中的物体要被三维视见体裁剪。
对视见体的裁剪和投影是三维图形显示过程中的重要环节,裁剪和投影的效率极大地影响图形的处理效率。
裁剪时,需要求解直线与视见体每个面的交点方程;投影时要求解投影线与投影平面的交点方程,如果视见体每个面的方程与投影平面的方程都不是简单形式,则计算量将会相对很大。
由第四章剪裁算法和本节后面的讨论知,当视见体是规范视见体时,投影和裁剪计算都会很方便。因此,可把用户定义的视见体变换为规范化的视见体,从而提高裁剪和投影算法的效率和减少问题的复杂性。
1、平行投影视见体的规范化
2、透视投影视见体的规范化
五、用三维规范体裁剪
Sutherland–Cohen 算法推广到三维
![](https://img2018.cnblogs.com/i-beta/1358881/201911/1358881-20191124145726387-1337785551.png)
梁友栋–Barsky 算法推广到三维