多边形扫描转换算法中的边表(Edge Table, ET)

多边形扫描转换算法中的边表(Edge Table, ET)目录文章目录目录边表 EdgeTable EG 边表 EdgeTable EG 我们在初始化时建立一个全局的边表 ET 它包含多个 它包含多边形的所有边 并且这些边按照它们各自 y 坐标较小值

大家好,欢迎来到IT知识分享网。

目录

边表(Edge Table, ET)

在多边形的扫描转换算法中,我们首先需要建立一个全局的边表(ET),它包含多边形的所有边并且这些边按照它们各自y坐标较小值( y m i n y_{min} ymin)排序
有资料也把这个全局的边表称为新边表(New Edge Table, NET),但是意思是一样的,即多边形扫描转换算法初始化时建立的全局边表。

ET是基于桶排序的方式建立的,有多少扫描线就有多少个桶(一般在最下面的桶下面再多加一个,看下面的例子就知道是什么意思了),每一个桶对应一个链表,每一个链表中的边的下端端点的纵坐标是相同的。然后在每个桶中,根据边的较低的端点的x坐标( x m i n x_{min} xmin),按照增序的方式对边进行排序。

ET(边表)中每一个链表的节点(每个节点对应一条边)包含下列信息:

  • 边的 y m a x y_{max} ymax坐标值
  • 边的下端端点的x坐标 x m i n x_{min} xmin
    注意这里 x m i n x_{min} xmin is the x at the minimum y for the edge, not necessarily the minimum x of the edge. Hence x m i n = 7 x_{min} = 7 xmin=7 for edge AB in 图3.14.
  • 随着扫描线递变到下一条线时的x坐标的增量1/m, (斜率的导数,m是斜率,slope)

形象的展示一下:

y m a x y_{max} ymax x m i n x_{min} xmin 1/m

边表包含所有的边

  • sorted by their smaller y coordinate of edge. ( y m i n y_{min} ymin)
  • If smaller y coordinates of edge are equal
    • edges are sorted in order of increasing x coordinate of the lower endpoint of edge. ( x m i n x_{min} xmin)
  • And if two x coordinates of the lower endpoint of edge are equal
    • edges are sorted according to the slope(斜率) of edge. ( m m m)

总结一下如何构建边表
1.按照每条边的 y m i n y_{min} ymin进行桶排序。
2.在一个桶中,按照 x m i n x_{min} xmin递增的顺序进行排序。
3.如果 x m i n x_{min} xmin也相同,那就按照边的斜率递增的顺序进行排列。


2.根据每个边的 y m i n y_{min} ymin对边进行桶排序
一共有多少个 y m i n y_{min} ymin?,分别是多少?对应那几条边?

1 -> AB, BC 3 -> FA 5 -> CD 7 -> EF, DE 

所以0,2,4,6,8,9,10,11都是空的,这里用 λ \lambda λ进行占位。(为什么要用 λ \lambda λ,记住就好了)。

3.如果边的 y m i n y_{min} ymin相同,则按照 x m i n x_{min} xmin的顺序进行排列。(这个我感觉是针对水平边的,因为水平边是被忽略的,这样以来,水平边的两个端点的 x m i n x_{min} xmin就不同了)

4.如果边的 y m i n y_{min} ymin x m i n x_{min} xmin都相同,则按照边的斜率进行排序。
所以这就是扫描线7,中EF排在前,DE排在后的原因了。

OK,到此多边形扫描转换中的边表就讲清楚了,接下来讲解活性边表(Active Edge Table, AET)。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139041.html

(0)
上一篇 2025-06-08 21:15
下一篇 2025-06-08 21:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信