计算机图形学重点和难点指导

发布时间 : 星期一 文章计算机图形学重点和难点指导更新完毕开始阅读

需要计算直线段与窗口边界的交点。中点分割直线段裁剪算法对第3种情况做了改进,不需要求解直线段与窗口边界的交点就可以对直线段进行裁剪。

中点分割直线段裁剪算法原理是简单地把起点为P0,终点为P1的直线段等分为两段直线PP0和PP1(P为直线段中点),对每一段直线重复“简取”和“简弃”的处理,对于不能处理的直线段再继续等分下去,直至每一段直线完全能够被“简取”或“简弃”,也就是说直至每段直线完全位于窗口之内或完全位于窗口之外,就完成了直线段的裁剪工作。直线段中点分割裁剪算法是采用二分算法的思想来逐次计算直线段的中点P以逼近窗口边界,设定控制常数c为一个很小的数(例如c=10-6),当|PP0|或|PP1|小于控制常数c时,中点收敛于直线段与窗口的交点。中点分割裁剪算法的计算过程只用到了加法和移位运算,易于使用硬件实现。用硬件实现中点分割算法,既快速又高效,这是因为整个过程可以并行处理。硬件实现除2不过是将数码右移一位而已。

第5章难点学习指导:

1. Liang-Barsky裁剪算法

梁友栋和Barsky提出了比Cohen-Sutherland裁剪算法速度更快的直线段裁剪算法。该算法是以直线的参数方程为基础设计的,把直线与窗口边界求交的二维裁剪问题转化为通过求解一组不等式来确定直线段参数的一维裁剪问题。Liang-Barsky算法将直线段与窗口的相互位置关系划分为两种情况:平行于窗口边界的直线段与不平行于窗口边界的直线段。 2. 多边形裁剪算法

Sutherland-Hodgman裁剪算法又称为逐边裁剪算法,基本思想是用裁剪窗口的4条边依次对多边形进行裁剪。窗口边界的裁剪顺序无关紧要,这里采用左、右、下、上的顺序。多边形裁剪算法的输出结果为裁剪后的多边形顶点序列。在算法的每一步中,仅考虑窗口的一条边以及延长线构成的裁剪线,该线把平面分为两部分:一部分包含窗口,称为可见侧;另一部分落在窗口之外,称为不可见侧。

P0可见侧可见侧 PP1

P0P1

(a)内→内,保存P1 (b)内→外,保存P

可见侧P1可见侧 PP0P1P0

(c)外→内,保存P和P1 (d)外→外,不保存

图17 边与裁剪窗口的位置关系

对于裁剪窗口的每一条边,多边形的任一顶点只有两种相对位置关系,即位于裁剪窗口的外侧(不可见侧)或内侧(可见侧),共有4种情形。设边的起点为P0,终点为P1,边与裁剪窗口的交点为P。图17(a)中,P0和P1都位于裁剪窗口内侧。将P1加入输出列表。图17(b)中,P0位于裁剪窗口内侧,P1位于裁剪窗口外侧。将P加入输出列表。图17(c)中,P0位于裁剪窗口外侧,P1位于裁剪窗口内侧。将P和P1加入输出列表。图17(d)中,P0和P1都位于裁剪窗口外侧。输出列表中不加入任何顶点。Sutherland-Hodgman裁剪算法可以用于裁剪任意凸多边形。

第6章 三维变换与投影

重点:基本几何变换矩阵;相对于任意方向的三维复合变换;三视图变换矩阵;斜投影变换矩阵;

难点:透视投影用到的坐标系;二维透视投影坐标;透视投影的深度坐标;

第6章重点学习指导:

1. 基本几何变换矩阵

三维基本几何变换分为平移、比例、旋转、反射和错切。旋转变换矩阵是用行矩阵表达的。

?1?0平移变换矩阵: T???0???Tx010Ty001Tz0??Sx?00??,比例变换矩阵:T??0??0??1??0?0Sy0000Sz00?0?? 0??1?0?1?0cos?绕x轴旋转变换矩阵:T???0?sin??0?00sin?cos?00?0??。 0??1??1?0关于xOy面的反射变换矩阵:T???0??0?1b?d1错切变换矩阵:T???gh??00cf1000100?1000?0??。 0??1?0?0??。 0??1?2. 相对于任意方向的三维复合变换

由于任意方向位于空间中,所以变换方法是首先对任意方向做旋转变换,使任意方向位于某个坐标面内,然后再旋转任意方向直到与该坐标平面内的某个坐标轴重合。此时对该坐标轴进行三维基本几何变换,最后做反向旋转变换,将任意方向还原到原来的方向。 3. 三视图变换矩阵

(1)将物体向yOz面做正投影,得到主视图。

?0?0TV???0??0010000100010

0?0?? 0??1?0?0?? 0??1?0?0?? 0??1?(2)将物体向xOz面做正投影,然后将xOz面绕z轴顺时针旋转90°得到俯视图。

?0?1?00 TH??

?00?

?00?0?0 TW???0??0(3)将物体向xOy面做正投影,然后将xOy面绕y轴逆时针旋转90°得到侧视图。

0?11000004. 斜投影变换矩阵

将三维物体向投影面内作平行投影,但投影方向不垂直于投影面得到的投影称为斜投影。与正交投影相比,斜投影具有较好的立体感。斜投影也具有部分类似正交投影的可测量性,平行于投影面的物体表面的长度和角度投影后保持不变。

1??0T????cot?cos??0?01?cot?sin?000000?0?? 0??1?5. 透视投影用到的坐标系

透视投影变换中,物体中心位于世界坐标系,视点位于观察坐标系,投影位于屏幕坐标

系。世界坐标系是右手三维系,而观察坐标系和屏幕坐标系都是左手三维系;三个坐标系间的关系如图18所示。

ywyvysxsbxvzvφOwczw图18 透视投影坐标系

Ov(a,b,c)zs0saxwM(a,c)

θ6. 视图变换与模型变换

物体的旋转动画可以使用两种方法生成,一种方法是物体固定,视点旋转,称为视图变换;另一种方法是物体旋转,视点固定,称为模型变换。真实感光照场景中,由于世界坐标系中设置了光源的位置,物体的旋转主要采用的是模型变换方式,此时视点和光源位置不变,物体旋转生成动画。 7. 二维透视投影坐标

xv?x?d?s?zv? ?yv?ys?d??zv?式中:(xs,ys)是透视投影的二维坐标;(xv,yv,zv)是观察坐标。

第6章难点学习指导:

1. 透视投影的深度坐标

前面给出了透视投影后屏幕坐标系中点的二维平面坐标计算方法。如果简单地使用此公式来产生透视图会存在问题:在沿着zv方向的同一条视线上,如果同时有多个显示点,二维平面坐标无法区分哪些点在前,哪些点在后,从而无法确定他们之间的遮挡关系。这说明在屏幕坐标系中用二维平面坐标(xs,ys)绘制三维立体透视图时,还缺少透视投影的深度坐标信息。在绘制真实感场景时,常需要使用物体的透视深度值进行表面消隐,也就是说需要使用下式计算物体在三维屏幕坐标系中的zs坐标。

zs?Far?1?Nearzv

Far?Near

联系合同范文客服:xxxxx#qq.com(#替换为@)