计算机图形学-实验五直线和多边形的裁剪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贵州大学实验报告
学院:计算机科学与信息学院专业:软件工程班级: 102班姓名学号实验组实验时间指导教师成绩实验项目名称实验五直线和多边形的裁剪
实
验
目
的
掌握直线段的裁剪算法以及多边形的裁剪算法
实
验要求熟练掌握直线段的裁剪算法以及多边形的裁剪算法的基本原理,并编写测试代码进行实验。
实验原理
Cohen-Sutherland直线剪裁算法
以区域编码为基础,将窗口及其周围的,8个方向以4 bit的二进制数进行编码。
右图所示的编码方法将窗口及其邻域
分为5个区域:
⑴内域:区域(0000)。
⑵上域:区域(1001, 1000, 1010)。
⑶下域:区域(0101, 0100, 0110)。
⑷左域:区域(1001, 0001, 0101)。
⑸右域:区域(1010, 0010, 0110)。
当线段的两个端点的编码的逻辑“与”非零时,线段为显然不可见的,对某线段的两个端点的区号进行位与运算,可知这两个端点是否同在视区的上、下、左、右;
Cohen-Sutherland直线剪裁算法的算法思想是:
对于每条线段P1P2分为三种情况处理。(1)若P1P2完全在窗口内,则显示该线段P1P2简称“取”之。(2)若P1P2明显在窗口外,则丢弃该线段,简称“弃”之。(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则在交点处把线段分为两段。其
实验数据一、直线段裁剪算法的结果显示:
(1)运行程序,点击“W”键,显示出裁剪窗口,用鼠标在画布上点击两点作为直线段的起点和终点,点击“A”键,进行直线段的裁剪,进行下一次的线段裁剪时,点击“R”键进行画布的清除,再重复上述过程进行实验:
第一种情况:线段在裁剪窗口的外部,线段完全不可见。
第二种情况:线段在裁剪窗口的内部,线段完全可见。
裁剪后:
第三种情况:线段部分在裁剪窗口的内部,部分在裁剪窗口的外部,线段部分可见。
裁剪后:
二、多边形裁剪的结果显示:
与直线裁剪操作方式不同的是:在裁剪时点击“B”键进行裁剪。
裁剪后: