.扫描线填充算法.docVIP

  • 5
  • 0
  • 约7.15千字
  • 约 9页
  • 2017-08-28 发布于湖北
  • 举报
扫描线填充算法

扫描线多边形填充: 填充的主要思想: struct Edge { float x; float Δx; float ymin; Edge *next; }; Step1:(初始化)将ET表中各元素置空,建立ET表 Step2: (basket sort,分桶分类 )为多边形P的每一条边建立边结构按该边的上端点的y值y上插入ET表中的第y上类(组),即插入ET[y上]. Step3 :(初始化) AEL置空//AEL=Null y:ET表中非空元素的区域号最大值。 Step4:扫描转化 while(AEL or ET 非空) do {No.1 (边插入)如果ET[y]非空,则将ET[y]中各边插入AEL。 No.2 (排序)将AEL中的各边按照x(若x相等按Δx的递增顺序排序。 No.3(如果AEL非空填色)将AEL中各边依次组成对,在横坐标为y的扫描线上,将以每对边的x坐标为端点的区间上填上多边形所需要的颜色. No.4(下一条扫描线)y--。 No.5(边删除)将AEL中满足y=ymin的边删除。 No.6(边更新)将AEL中的各边x值更新,x=x+ Δx } 源程序 C++源代码: CScanLineView::CScanLineView() { num=0; StartFlag=0;

文档评论(0)

1亿VIP精品文档

相关文档