计算机图形学-实验报告2-多边形有效边表填充算法

实验报告
课程名称
班    级
班级学号 
姓    名
实验日期
成    绩
实验题目
多边形有效边表填充算法
一、 实验目的:
1)有效边表和甬表的数据结构
2)颜对话框的调用方法
3)动态链表的排序算法
二、 实验内容:
三、 自定义屏幕二维坐标系,原点位于客户区中心,x轴水平向右为正,y轴垂直向上为正。
四、 在屏幕客户区内使用cline类绘制示例多边形边界。
五、 设置屏幕背景为白死,调用windows的颜对话框选择填充使用单一颜填充多边形。
六、 使用有效边表填充算法填充示例多边形内部及边界。
七、 实验步骤:
(1) 调用颜对话框读取填充。
(2) 根据示例多边形顶点坐标值,计算扫描线的最大值ScanMax和最小值ScanMin
(3) 用多边形覆盖的扫描线动态建立甬结点
(4) 循环访问多边形的所有顶点,根据边的顶点y值比起点y值高或边的终点y值比起点y值低两种情况,计算每条边的ymin。在甬中寻与该ymin相对应的甬结点计算该边表示的x|yminymaxk,并依据次链接该边表结点到甬结点。
(5) 对每个甬结点链接的边表,根据x|ymin值的大小进行排序,若x|ymin相等,则按照k由小到大排序。
(6) 循环访问每个甬结点,将甬内每个结点的边表合并成有效边表,并循环访问有限边表。
(7) 该边从有效边表中取出扫描线上相邻两条边的结点对进行配对。填充时设置一个逻辑变量binflag,每访问一个结点,把binflag值取反一次,若binflag为真,则把从当前结点的x值开始到下一结点x值结束的区间用指定的颜填充。
(8) 循环下一甬结点,按照xi+1=xi+k修改有效边表,同时合并甬结点内的新边表,形成新的有效边表。
(9) 如果甬结点的扫描线值大于等于有效边表中的结点值ymax,则该边为无效边。
(10) 当甬结点不为空则转(6)否则删除甬表和边表的头结点,算法结束。
(11) 实验结果及分析:
实验地点
软件实验室
指导教师
李丽亚

本文发布于:2024-09-23 11:25:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/377798.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结点   实验   多边形   填充   颜色
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议