• 多边形的扫描转换(一)X扫描线算法


    二、多边形的扫描转换

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

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


    (1)顶点表示:用多边形的定点序列来表示多边形
        优点:直观、几何意义强、占内存少、易于进行几何变换
        缺点:没有明确指出那些象素在多边形内,故不能直接用于上色
    (2)点阵表示:是用位于多边形内的象素集合来刻画多边形
        缺点:丢失了许多几何信息(eg:边界、顶点等)
    ——>但【点阵表示是光栅显示系统显示时所需的表现形式。】
    4、多边形分类


    5、【问题1】知道多边形的边界,如何找到多边形内部的点,即把多边形内部填上颜色?
    (1)X-扫描线算法;

          按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。区间的端点可以通过计算扫描线与多边形边界线的交点获得。
         【核心:按x递增顺序排列交点的x坐标序列,缺点:效率低(求交点很麻烦)】

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


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


  • 相关阅读:
    双指针
    git .gitignore文件修改后不生效
    Vue路由跳转携带固定参数
    GitLab 安装说明
    安装 PostgreSQL
    职场软素质&算法工程师的硬素质卓越的职场人需要的42种能力
    内存泄漏排查
    Oracle基本操作(登陆、用户、表空间、exp/imp、权限)
    oracle删除用户、表空间及数据⽂件⽅法
    oracle检查存储过程出错原因
  • 原文地址:https://www.cnblogs.com/Penglimei/p/9669424.html
Copyright © 2020-2023  润新知