参数化算法(Cyrus-Beck) 考虑凸多边形区域R和直线段P1P2 P(t)=(P2-P1)*t+P1 设A是区域R的边界上 一点,N是区域边界在 A点的内法线向量 参数化算法(Cyrus-Beck) 则对于线段P1P2上任一点P(t) N ·(P(t)-A)0-外侧 N ·(P(t)-A)0-内侧 N ·(P(t)-A)=0-边界 或其延长线上 参数化算法(Cyrus-Beck) 凸多边形的性质:点P(t)在凸多边形内的充要条件是,对于凸多边形边界上任意一点A和该点处内法向N,都有 N·(P(t)-A)0 参数化算法(Cyrus-Beck) k条边的多边形,可见线段参数区间的解: Ni· (p(t)-Ai)=0, i=0,…,k, 0≤t ≤1. 即:Ni· (P1-Ai)+ Ni· (P2-P1) t=0 (1)式 可得: 令ti= Ni· (P1-Ai)/[Ni· (P2-P1) ] 参数化算法(Cyrus-Beck) Ni· (P2-P1) =0- 平行于对应边。 此时判断Ni· (P1-Ai) 若Ni· (P1-Ai) 0-P1 P2在多边形外侧-不可见, 若Ni· (P1-Ai) 0-P1 P2在多边形内侧-继续其它边的判断 参数化算法(Cyrus-Beck) 对于t值的选择:首先,要符合0≤t≤1;其次,对于凸窗口来说,每一个线段与其至多有两个交点,即有两个相应的t值。所以我们可以把计算出的t值分成两组:一组为下限组,是分布在线段起点一侧的;一组为上限组,是分布在线段终点一侧的。这样,只要找出下限组中的最大值及上限组中的最小值,就可确定线段了。 分组的依据是: 如果Ni· (P2-P1) <0,则计算出的值属于上限组 如果Ni· (P2-P1) >0,则计算出的值属于下限组 参数化算法的几何意义 参数化算法(Cyrus-Beck) 因此,线段可见的交点参数: tl=max{0,max{ti: Ni· (P2-P1) 0}} tu=min{1,min{ti: Ni· (P2-P1)0}} 若 tl = tu, [tl , tu]是可见线段的交点参数区间,否则,线段不可见。 参数化算法 当凸多边形是矩形窗口且矩形的边与坐标轴平行时,该算法退化为Liang-Barsky算法。 Liang-Barsky算法所用的量 4.字符裁剪 前面我们介绍了字符和文本的输出。当字符和文本部分在窗口内,部分在窗口外时,就提出了字符裁剪问题。 字符串裁剪可按三个精度来进行:串精度、字符精度、以及笔画\象素精度。 采用串精度进行裁剪时,将包围字串的外接矩形对窗口作裁剪。当字符串方框整个在窗口内时予以显示,否则不显示。采用字符精度进行裁剪时,将包围字的外接矩形对窗口作裁剪,某个字符方框整个落在窗口内予以显示,否则不显示。采用笔画\象素精度进行裁剪时,将笔划分解成直线段对窗口作裁剪,处理方法同上。 输入:S5S0S1P1S2S3S4 输出:S5S0S1S6S7S2S3S4 (b)用窗口右边界裁剪 输入:S0S1P1S2S3P3 输出:S5S0S1P1S2S3S4 (c)用窗口下边界裁剪 示例凹多边形使用Sutherland-Hodgman裁剪算法裁剪后,输出结果为两个不连通的三角形,窗口的边界AB成为了多余线段 。为了正确地裁剪凹多边形,一种方法是先将凹多边形分割为两个或更多的凸多边形,然后分别使用Sutherland-Hodgman裁剪算法裁剪。另一种方法是使用Weiler-Atherton 裁剪算法。该算法适用于任何凸的、凹的带内孔的多边形裁剪,但计算工作量很大。 凹多边形裁剪 错误的输出结果 void CTestView::ClipPolygon(CP2 *out,int Length,UINT Boundary) { CP2 *pTemp=new CP2[Length]; for(int i=0;iLength;i++) pTemp[i]=out[i]; CP2 p0,p1,p;//p0-起点,p1-终点,p-交点 OutCount=0; p0=pTemp[Length-1]; for(i=0;iLength;i++) { p1=pTemp[i]; if(Inside(p0,Boundary))//起点在窗口内 { if(Inside(p1,Boundary))//终点在窗口内,属于内→内 { Out[OutCount]=p1;//终点在窗口内 OutCount++; }
您可能关注的文档
- 新建浅谈听力绪论.ppt
- 浙江省宁波市2015届高三十校联考理科综合试题论述.doc
- 浙江省宁波市镇海中学2016年高考化学二模试卷(版)论述.doc
- 浙江省普通高中2014年7月学业水平考试地理试题(word版)论述.doc
- 浙江省衢州市2013年中考数学试卷论述.doc
- 第一章太阳系和地球系统的元素丰度说课.ppt
- 浙江省衢州市2013年中考物理试题(word版)论述.doc
- 浙江省绍兴一中2009届高三第一次模拟试卷(语文)论述.doc
- 浙江省台州市2015届高考化学一模试卷论述.doc
- 第一章土的物理性质说课.ppt
- 2024-2025学年泰山学院计算机科学与技术专业《数据库原理》期末试卷及答案.docx
- 河北省邯郸市大名县第一中学2026届高三化学上学期12月强化训练试题三.doc
- 2025_2026学年新教材高中化学第三章铁金属材料第二节第2课时物质的量在化学方程式计算中的应用学案新人教版必修1.doc
- 2025_2026学年新教材高中地理第一章认识区域1区域及其类型课时评价含解析湘教版选择性必修2.doc
- 2026届高考政治时政热点作业构建人类命运共同体.doc
- 七年级英语上册StarterUnit1Goodmorning练习2新版人教新目标版.docx
- 专题01+读后续写话题之校园生活(复习课件)(全国通用)2026年高考英语二轮复习讲练测.pdf
- 第二章+课时76+污染物跨境转移与环境安全+课件-2026届高三地理一轮复习.pdf
- 专题一 中国古代的政治制度(复习课件)(专题版)2026年高考历史二轮复习讲练测.pdf
- 2026届高考语文专题复习:分析小说环境描写.pdf
原创力文档

文档评论(0)