第五章二维填充图元生成.pdfVIP

  • 2
  • 0
  • 约1.03万字
  • 约 67页
  • 2018-06-07 发布于福建
  • 举报
第五章二维填充图元生成

第五章 二维填充图元的生成 授 课 教 师: 李 胜 北京大学计算机科学技术系 人机交互与多媒体实验室 主要内容 扫描转换:矩形、多边形、扇形 确定图元内部像素; 内部颜色显示:均匀填色,图像填充; 5.1扫描转换矩形 比一般多边形可简化计算。 应用非常多,窗口系统。 多边形共享边处理: 边有宽度,光栅系统的特点; 扫描转换矩形 方法: void FillRectangle(Rectangle *rect,int color) { int x,y; for(y = rect-ymin;y = rect-ymax;y++) for(x = rect-xmin;x = rect-xmax;x++) PutPixel(x,y,color); }/*end of FillRectangle() */ 扫描转换矩形 问题: 矩形是简单的多边形,那么为什么要单独处 理矩形? 比一般多边形可简化计算。 应用非常多,窗口系统。 共享边界如何处理? 原则:左闭右开,下闭上开 属于谁? 5.2 扫描转换多边形 顶点表示;点阵表示。 三种方法: 逐点判断法;扫描线算法;边缘填充法。 逐点判断法 逐个判断绘图窗口内的像素: 如何判断点在多边形的内外关系? 射线法; 累计角度法; 编码法; (1)射线法 V点出发射线,与多边形边相交,若交点个数偶数,V 点在外边,反之…… 交点通过多边形顶点? 通过某边的中点(不考虑边的端点) (2) 累计角度法 步骤 从v点向多边形P顶点发出射线,形成有向角 计算有向角的和, n v⎧0,P位于 之外 ∑θi ⎨ ± i 0 2v位于, π P之内⎩ 离散计算方法:编码方法 (3)编码方法:累计角度方法的离散方法 Step: a.预处理,测试点在边上否。 b.V为原点作局部坐标系。 c.顶点编码, d.边编码。P P : △P P =Ipi+1-Ipi i i+1 i i+1 P e.计算编码和: 0, 在外; +/-4,在内; 0 注意:边的编码周期性为4, =2时?需特殊处理(p71,p72) 逐点判断法程序简单, P v 1 速度太慢,效率低。 P 2 5.3 扫描线算法(有序边表算法) 利用像素之间的连贯性,避免逐点判断和反复 求交。 一条扫描线与多边形的边间有偶数个交点。 交点之间的点或在内,或在外,称为扫描线的

文档评论(0)

1亿VIP精品文档

相关文档