大家好,乐天来为大家解答以下的问题,关于计算机图形学实验报告二,计算机图形学实验报告这个很多人还不知道,现在让我们一起来看看吧!
1、该算法的思想是:对于每条线段P1P2分为三种情况处理。
2、(1)若P1P2完全在窗口内,则显示该线段P1P2简称“取”之。
3、(2)若P1P2明显在窗口外,则丢弃该线段,简称“弃”之。
4、(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则在交点处把线段分为两段。
5、其中一段完全在窗口外,可弃之。
6、然后对另一段重复上述处理。
7、 为使计算机能够快速判断一条直线段与窗口属何种关系,采用如下编码方法。
8、延长窗口的边,将二维平面分成九个区域。
9、每个区域赋予4位编码CtCbCrCl。
10、其中各位编码的定义如下: 图2.5.2 多边形裁剪区域编码 图2.5.3 线段裁剪 裁剪一条线段时,先求出P1P2所在的区号code1,code2。
11、若code1=0,且code2=0,则线段P1P2在窗口内,应取之。
12、若按位与运算code1&code2≠0,则说明两个端点同在窗口的上方、下方、左方或右方。
13、可判断线段完全在窗口外,可弃之。
14、否则,按第三种情况处理。
15、求出线段与窗口某边的交点,在交点处把线段一分为二,其中必有一段在窗口外,可弃之。
16、在对另一段重复上述处理。
17、在实现本算法时,不必把线段与每条窗口边界依次求交,只要按顺序检测到端点的编码不为0,才把线段与对应的窗口边界求交。
18、 Cohen-Sutherland裁减算法#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8int encode(float x,float y){ int c=0; if(x 本文分享完毕,希望对大家有所帮助。 标签:
免责声明:本文由用户上传,如有侵权请联系删除!