- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贵州大学实验报告
学院:计算机科学与信息学院 专业:计算机科学与技术 班级: 101
姓名 学号 实验组 7 实验时间 2013.5.16 指导教师 吴云 成绩 实验项目名称 裁剪及消隐 实验目的 掌握常用的裁减及消隐算法:直线、多边形的裁减;消除隐藏面算法:Roberts消隐算法、Z缓冲器算法、扫描线Z缓冲器算法、光线跟踪算法。
实验要求
在VS2010环境下利用C#编程实现裁剪和消隐。
给出代码。
附上结果截图。
实验原理 直线裁减
Cohen-SutherLand算法(编码算法)
算法原理(递归的裁剪过程):
对于每条线段P1P2分为三种情况处理:
(1)若P1P2完全在窗口内,则显示该线段P1P2。
(2)若P1P2明显在窗口外,则丢弃该线段。
(3)若线段不满足(1)或(2)的条件,则在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。
为快速判断,采用如下编码方法:
由窗口四条边所在直线把二维平面分成9个区域(右图),每个区域赋予一个四位编码:CtCbCrCl(上下右左);直线的端点都按其所处区域赋予相应的区域码,用来标识出端点相对于裁剪矩形边界的位置。
各位编码含义:
上:if yymax,Ct=1,else, 0;
下:if yymax,Cb=1,else, 0;
右:if xxmax,Cr=1,else, 0;
左:if xxmax,Cl=1,else, 0;
对某线段的两个端点的区号进行位与运算,可知这两个端点是否同在视区的上、下、左、右;
如果两端点的编码均为0000,表示直线在窗口内。
如果两端点的编码相与不为0000,表示直线在窗口外。
如果两端点的编码不全为0000,但相与为0000,则该直线部分可见,需计算直线与窗口的交点,确定哪一部分可见。
算法描述:
BOOL done,draw;(done表示是否完成,draw表示是否可见)
Unsigned char code1,code2;端点1,端点2的编码
While (!done)
begin
if (判断code1,code2,若为第1种情况)
begin
done = TRUE;
draw = TRUE;
end
else if (为第2种情况)
begin
done = TRUE;
draw = FALSE;
end
else if(检查code1,若在窗口内)/*第3种情况*/
begin
交换端点及端点的编码;以左,上,右,下的次序对端点1进行判断及求交;将交点的值赋给端点1;
end
end
算法分析:
本算法的优点在于简单,易于实现。用编码方法可快速判断线段的完全可见和显然不可见,他可以简单的描述为将直线在窗口左边的部分删去,按左,右,下,上的顺序依次进行,处理之后,剩余部分就是可见的了。在这个算法中求交点是很重要的,他决定了算法的速度。
本算法对于其他形状的窗口是否同样有效就值得讨论了,这也证明了在图形算法中,没有几个是对大多数情况有效的。
特别适用二种情形:大窗口场合;窗口特别小场合(光标拾取图形,光标看作小的裁剪窗口)。
多边形裁减
Sutherland-Hodgema算法
算法原理:
通过对单一边或面的裁剪来实现多边形的裁剪
分割处理策略:将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。一次用窗口的一条边裁剪多边形。
流水线过程(左上右下):前边的结果是后边的输入。
亦称逐边裁剪算法。
算法的每一次输出(包括中间结果)都是一个多边形的顶点表,且所有顶点均位于相应窗口裁剪边或面的可见一侧。由于多边形的每一条边需要与裁剪边或面分别进行比较,因此只需要讨论单条边和单个裁剪边或面之间可能的位置关系。假设S,P为多边形的两个相邻顶点,且S为该边的起点,P为该边的终点,则变SP与裁剪边或面之间只有4种可能的关系。如下图:
由上可见,每一次将多边形的边与裁剪边或面比较后,输出一个或两个顶点,也可能无输出点。如果SP边完全可见,则输出P点,不必输出起点S,因为顶点是按顺序处理的,S是作为前一边的终点输出的。如果SP边完全不可见,则无输出。如果SP边部分可见,则SP边可能进入或离开裁剪边或面的可见一侧。 如果SP边离开裁剪边或面的可见一侧,则输出SP与裁剪边或面交点。如果SP边进入裁剪边或面的可见一侧,则输出两点,一个为SP与裁剪边或面的交点,一个是P点。
对于多边形的第一个顶点,只需判断其可见性。如果可见,则输出且作为起点S;否则无输出,但还是要作为S保存,以便后续点处理。
对于最后一条边PnP1,其处理方法是:标志第一顶点为F,这样最后一条边则为PnF,可与其他边作相同的处理。
实现方法:
设置二
您可能关注的文档
- 喷油器检测.ppt
- 喷油器的检修.ppt
- 喷油泵的工作原理机升董衍生.ppt
- 喷油螺杆压缩机的工作原理.ppt
- 喷油螺杆式空压机组的系统结构分析及故障判别.ppt
- 喷油设备.ppt
- 喷涂技术培训教材.ppt
- 喷漆PTtraining.ppt
- 喷漆枪的基本操作知识.ppt
- 喷灌系统.ppt
- 2018年普通高等学校招生全国统一模拟考试理综-化学试题扫描版含答案.doc
- Unit6SunshineforallStudyskills课件-牛津译林版八年级英语下册.pptx
- Unit3After-schoolactivitiesLesson2Avisittoafarm课件冀教版(2024)英语七年级下册.pptx
- 第13课《最后一次讲演》课件-统编版语文八年级下册.pptx
- Unit2BesportybehealthyReading课件-牛津译林版(2020)高中英语.pptx
- Unit2Differentfamilies第三课时(课件)-人教PEP版(2024)英语三年级上册.pptx
- 服务业的区位选择教学课件-湘教版高中地理必修二.pptx
- 城镇化进程及其影响课件高中地理湘教版(2019).pptx
- 国家海洋权益与海洋发展战略课件高一地理中图版必修2.pptx
- 工程变更管理细则.doc
最近下载
- 一种定向声波驱鸟器.pdf VIP
- 光伏智慧管理平台方案.docx VIP
- 公共危机与应急管理(原理与案例)王宏伟-第七章 应急沟通.pptx VIP
- 火电工程建筑工程交付使用前质量监督检查记录.pdf VIP
- 2023-2024学年高中下学期主题班会 世界读书日 读书,是门槛最低的高贵 课件 .pptx VIP
- 化解小学生争吵主题班会PPT课件.pptx VIP
- 儿童保健学试题库.pdf VIP
- 完整版老旧小区雨污分流改造工程施工组织设计方案(最全).doc
- 2023年广东省深圳市光明区中考二模物理试题(含答案解析).docx
- 四川省成都市石室中学2024届高二下学期期中半期考试物理试题(含答案及解析).docx
文档评论(0)