多边形填充算法-有序边表法(扫描线算法) 计算机图形学

本文介绍了使用有序边表法(扫描线算法)实现多边形填充的步骤,包括求交点、交点排序、交点匹配和区间填充。通过建立边的分类表ET,确定与扫描线相交的边,以及维护活性边表AEL,优化求解效率,避免无益的求交点操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.算法的基本思想(扫描线连贯性原理):

 

  对于一个给定的多边形,用一组水平(垂直)的扫描线进行扫描,对每一条扫描线均可求出与多边形边的交点,这些交点将扫描线分割成落在多边形内部的线段和落在多边形外部的线段;并且二者相间排列。于是,将落在多边形内部的线段上的所有象素点赋以给定的色彩值。
       算法中不需要检验每一个象素点,而只考虑与多边形边相交的交点分割后的扫描线段。
2.算法求解:
对于每一条扫描线的处理 :
  • 1)求交点:首先求出扫描线与多边形各边的交点; 
  • 2)交点排序:将这些交点按X坐标递增顺序排序; 
  • 3)交点匹配:即从左到右确定落在多边形内部的那些线段; 
  • 4)区间填充:填充落在多边形内部的线段。

3.求交点的方法
  • 最简单的办法:将多边形的所有边放在一个表中,在处理每条扫描线时,从表中顺序取出所有的边,分别求这些边与扫描线的交点。     
  • 不使用该方法的原因:将做一些无益的求交点动作,因为扫描线并不一定与多边形的边相交,扫描线只与部分甚至较少的边相交;因此,在进行扫描线与多边形边求交点时, 应只求那些与扫描线相交的边的交点。
  • 确定与扫描线相交的边:用边表来确定哪些边是下一条扫描
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值