计算机图形学——多边形的扫描转换

一、多边形扫描转换

在光栅图形中,区域是由【相连的】像素组成的集合,这些像素具有【相同的】属性值或者它们位于某边界线的内部

1、光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示。这种转换成为多边形的扫描转换。
2、多边形的扫描转换与区域填充问题是怎样在离散的像素集上表示一个连续的二维图形。
3、多边形有两种重要的表示方法:

 (1)顶点表示:用多边形的定点序列来表示多边形
    优点:直观、几何意义强、占内存少、易于进行几何变换
    缺点:没有明确指出那些象素在多边形内,故不能直接用于上色
(2)点阵表示:是用位于多边形内的象素集合来刻画多边形
    缺点:丢失了许多几何信息(eg:边界、顶点等)

但是【点阵表示是光栅显示系统显示时所需的表现形式。】

多边形的扫描转换就是把多边形的顶点表示转换为点阵表示,即从多边形的给定边界出发,求出位于其内部的各个像素,并将帧缓冲器内的各个对应元素设置相应的灰度或颜色。实际上就是多边形内的区域的着色过程。

4、多边形分类

 二、X扫描线算法

X扫描线算法填充多边形的基本思想是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。

扫描二维码关注公众号,回复: 7424885 查看本文章

 区间的端点可以通过计算扫描线与多边形边界线的交点获得。

如扫描线y=3与多边形的边界相交于4点(2,3)、(4,3)、(7,3)、(9,3)

这四个点定义了扫描线从x=2到x=4,从x=7到x=9两个落在多边形内的区间,该区间内像素应取填充色。

算法的核心是按x递增顺序排列交点的x坐标序列。由此可得到扫描线算法步骤如下:

 算法步骤:
    1.确定多边形所占有的最大扫描线数,得到多边形定点的最小最大值(ymin和ymax);
    2.从yminymax每次用一条扫描线进行填充;
    3.对一条扫描线填充的过程分为四个步骤:
      a)求交点;
      b)把所有交点按递增顺序排序;
      c)交点配对(第一个和第二个,第三个和第四个);
      d)区间填色。

 扫描线与多边形顶点相交时,交点的取舍问题【交点应保证为偶数个】

交点问题的处理:

 

猜你喜欢

转载自www.cnblogs.com/wkfvawl/p/11622265.html