- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]计算机图形学第5章电子教案
1999年7月 第五章 裁剪 5.1 窗口视图变换 在计算机图形学中,将在用户坐标系中需要进行观察和处理的一个坐标区域(矩形区域)称为窗口(Window)。 在图形设备的显示范围内,由设备坐标系定义的一个矩形区域称为视区(Viewport)。 要将窗口内的图形在视区中显示出来,必须经过将窗口到视区的变换。 窗口到视区的变换 5.2 二维裁剪 图形裁剪:判断画面中哪些图形元素全部或部分位于裁剪窗口之内,求出位于区域内的部分保留显示,而画面其他部分被裁去。 处理裁剪: (1) 判断点在区域内或外部; (2) 计算图形(元素)与限定区域边界的交点。 点的裁剪 直线段的裁剪: 直线段和剪裁窗口的可能关系: 完全落在窗口内 完全落在窗口外 与窗口边界相交?? 完全在窗口内的线段和完全不在窗口的线段的判别:(假定直线段用a(Xa,Ya)b(Xb,Yb)表示) if (Xa XL || Xa XR) goto 1 if (Xb XL || Xb XR) goto 1 if (Ya YB || Ya YT) goto 1 if (Yb YB || Yb YT) goto 1 线段ab在窗口内;判断结束。 1 if (Xa XL Xb XL) if (Xa XR Xb XR) if (Ya YB YB YT) if (Ya YT Yb YT) 编码:对于任一端点(X,Y),根据其坐标所在的区域, 赋予一个4位的二进制码D3D2D1D0来标识线段 的端点与窗口区域的关系。 编码规则如下: 若X XL ,则D0=1,否则D0=0; 若X XR,则D1=1,否则D1=0; 若Y YB ,则D2=1,否则D2=0; 若Y YT,则D3=1,否则D3=0。? 1. Cohen-Sutherland算法 基本思想:对每条直线段P1(X1,Y1)P2(X2,Y2) 线段P1P2完全可见或完全不可见,则“全取”之或“全弃”之,否则执行(2) 。 (2)找到P1P2在窗口外的一个端点P1 (或P2 ); (3)用窗口的边与P1P2的交点取代该端点P1 (或P2 ); (4) P1P2线段是否完全可见,若是,则结束,否则转到(2)继续执行。 裁剪 裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后: (1)若code1|code2=0,直线段完全可视。 (2)若code1code2≠0,直线段完全不可视。 (3)若上述两条件均不成立。则需求出直线段与窗口边界的交点。在交点处把线段一分为二,其中必有一段完全在窗口外,可以弃之。再对另一段重复进行上述处理,直到该线段完全被舍弃或者找到位于窗口内的一段线段为止。 端点与窗口位置的判断: if 端点编码 0001 0 , 端点与左边界有交点 if 端点编码 0010 0 , 端点与右边界有交点 if 端点编码 0100 0 , 端点与下边界有交点 if 端点编码 1000 0 , 端点与上边界有交点 直线:(X1,Y1) , (X2,Y2) 与水平线Y=k的 交点为: 算法的步骤: (1)输入直线段的两端点坐标:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标: XL、XR 、YT和YB。 (2)对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。 (3)若code1|code2=0,直线段完全可视,转(6);否则,若code1code2≠0,直线段完全不可视,转(6);当上述两条均不满足时,进行步骤(4)。 (4)确保p1在窗口外部:若p1在窗口内,则交换p1和p2的坐标值和编码。 (5)按左、右、上、下的顺序求出直线段与窗口边界的交点s,并用该交点的坐标值替换p1的坐标值。也即在交点s处把线段一分为二,并去掉p1s这一段。( 因为p1是窗口外的一点,因此可以去掉p1s。) 转(2)。 (6)算法结束。? 例如: 2. 中点分割算法 基本思想: 首先判断直线段是否完全可视或完全不可视,然后对于部分在窗口内的线段等分为二段,对两段重复上述测试处理,直到找到每段与窗口边的交点或分割子段的长度充分小到可以视为一点为止。? 算法的改进: 将Pm2作为离P1最远的可见点保存,然后分割Pm2P2 , 在分割过程中若中点为可见点则被当做P1最远的可 见点保存,直到在一定精度下求得线段与窗口一边 交点为止。该交点就是离P1最远的可见点。 算法步骤:
您可能关注的文档
最近下载
- 城管执法队员百分制考核细则.docx VIP
- 高血压的诊治PPT课件.pptx VIP
- 第二单元第04课时用混合运算解决实际问题(1)(教学课件)数学人教版三年级上册(新教材).pptx
- 健身会所操课教练工作流程及规范 .pdf VIP
- 《江苏省工业、建筑业、服务业、生活和农业用水定额(2025年)》.docx VIP
- 国投证券-固态电池系列报告(一):未来已来固态电池行业迎来产业驱动.pdf VIP
- Hubsan哈博森无人机ZINO说明书用户手册.pdf
- 高中政治必修二《经济与社会》选择题专练30题 .pdf VIP
- 高危高尿酸血症药物降尿酸治疗专家共识(2025版).pptx VIP
- 2025湖南郴州桂阳县招聘25名城市社区专职工作者笔试备考题库及答案解析.docx VIP
文档评论(0)