- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求出 和两条始边的交点的参数 和 ,令: 求出 和两条终边的交点的参数 和 ,令: 当 时,参数方程中参数的线段就是的可见部分。当 时,整个直线段为不可见 为了确定始边和终边,并求出 与它们的交点,可采用如下方法,令: 交点的参数为: 当 时,求得的 必定是 和始边的交点的参数。当 时, 则是 和终边的交点的参数。 算法的程序实现如下 函数L_Barsky实现算法 函数cansee用于判断直线段是否可见。 double xl, xr, yt, yb; (窗口位置) void L_Barsky(double x0, y0, x2, y2) { double t0, t1, deltax, deltay; t0=0.0; t1=1.0; deltax=x2-x0; if (!cansee(-deltax, x0-x1, t0, t1)) return; if (!cansee(deltax, xr-x0, t0, t1)) return; deltay=y2-y0; if (!cansee(-deltay, y0-yb, t0, t1)) return; if (!cansee(deltay, yt-y0, t0, t1)) return; x2=x0+t1*deltax; y2=y0+t1*deltay; x0=x0+t0*deltax; y0=y0+t0*deltay; showline(x0, y0, x2, y2); //显示可见线段 } bool cansee(double q, d, t0, t1) { double r; if (q0) { r=d/q; if (rt1) {cansee=false; return;} else if (rt0) t0=r; } else if (q0) { r=d/q; if (rt0) {cansee=false; return;} else if (rt1) t1=r; } else if (d0) {cansee=false; return;} cansee=true; } 其它图形的裁剪 多边形、字符、圆弧和任意曲线 多边形裁剪后,一部分窗口的边界有可能成为裁剪后多边形的边界,而一个凹多边形裁剪后可能成为几个多边形 对多边形的裁剪可以采用Sutherland-Hodgman算法,只要对多边形用窗口的四条边裁剪四次就可得到裁剪后的多边形 字符裁剪 如果把字符的每一笔看成是由一条直线段或几条直线段组成的,那么就可以用直线段裁剪的方法去处理每一笔划;或者把包含一个字符的最小矩阵的中心或左下角在窗口外的字符认为不可见。 字符串裁剪 如果包含字符串的最小矩形的中心或左下角在窗口外,则认为整个字符串为不可见。 圆弧裁剪,可把圆弧和窗口四条边的交点求出来,再按交点对圆心幅角的大小排序,排序后,相邻的两个交点决定了圆弧上一段可见或不可见的弧。 ABC ABC ABC 裁剪区域为任意凸多边形区域时的直线段的裁剪算法 第一步 计算所要裁剪的直线段所在直线与凸多边形区域的边界直线段的交点。 第二步 当交点的个数为0或1时,该直线段处于凸多边形区域外 第三步,当交点的个数为2时,通过判断这两个交点与被裁剪的直线段的端点在直线段所处的直线上的关系来进行裁剪。 1.?如果直线段的两个端点和两个交点刚好全部重合,则显而易见该直线段完全可见。 2.???如果直线段的两个端点和两个交点中有一个 重合,则将重合的点视为一点,则将重合点与另外的一个端点、一个交点按在直线上的顺序排列。根据排列的顺序有如下三种情况: 如果重合点和交点不相邻,则直线段完全可见;如果重合点与交点相邻,且该交点与另一个端点相邻,则直线段部分可见,且可见部分为重合点与另一个交点确定的直线段,它的可见部分为直线段;如果重合点与交点相邻,且该交点与另一个端点不相邻,则直线段完全不可见。 如果直线段的两个端点和两个交点都不重合。将这四个点按在直线上的顺序排列,根据排列的顺序有如下四种情况:如果两个端点和两个交点分别相邻,则直线段完全不可见; 如果两个端点在两个交点之间,则直线段完全可见;如果两个交点在两个端点之间,则直线段部分可见,且可见部分为两个交点决定的直线段,它的可见
您可能关注的文档
- 华南理工大学大三学习资料:实验打印.docx
- 华南理工大学大三学习资料:智能电网.docx
- 华南理工大学大三学习资料:智能配电网-1.ppt
- 华南理工大学大三学习资料:自动控制理论复习.pptx
- 华南理工大学-电机学-动态-第27章 电机动态分析特点.ppt
- 华南理工大学-电机学-动态-第28章 同步机动态分析.ppt
- 华南理工大学-电机学-动态-第30章 变压器动态分析.ppt
- 华南理工大学-电机学-动态-动态 习题课.ppt
- 华南理工大学数电期末模拟6.doc
- 华南理工大学数电期末模拟试卷A.docx
- 计算机图形学(徐长青、许志闻)第四章 图形变换.doc
- 计算机图形学(徐长青、许志闻)第四章 曲线和曲面.ppt
- 计算机图形学(徐长青、许志闻)第五章 图形运算.ppt
- 计算机图形学(徐长青、许志闻)第一章计算机图形学简介.ppt
- 计算机图形学(徐长青、许志闻)第一章 MFC图形编程基础.doc
- 计算机图形学(徐长青、许志闻)计算机图形学实验[1].ppt
- 计算机图形学(徐长青、许志闻)计算机图形学试题a(软件学院2002级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题A(软件学院2003级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题b(软件学院2002级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题bb(软件学院2003级)答案.doc
文档评论(0)