课程名称 | 班 级 | 班级学号 | |||||
姓 名 | 实验日期 | 成 绩 | |||||
实验题目 | |||||||
一、 实验目的: (1)有效边表和甬表的数据结构 (2)颜对话框的调用方法 (3)动态链表的排序算法 二、 实验内容: 三、 自定义屏幕二维坐标系,原点位于客户区中心,x轴水平向右为正,y轴垂直向上为正。 四、 在屏幕客户区内使用cline类绘制示例多边形边界。 五、 设置屏幕背景为白死,调用windows的颜对话框选择填充使用单一颜填充多边形。 六、 使用有效边表填充算法填充示例多边形内部及边界。 七、 实验步骤: (1) 调用颜对话框读取填充。 (2) 根据示例多边形顶点坐标值,计算扫描线的最大值ScanMax和最小值ScanMin。 (3) 用多边形覆盖的扫描线动态建立甬结点。 (4) 循环访问多边形的所有顶点,根据边的顶点y值比起点y值高或边的终点y值比起点y值低两种情况,计算每条边的ymin。在甬中寻与该ymin相对应的甬结点计算该边表示的x|ymin,ymax,k,并依据次链接该边表结点到甬结点。 (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 条评论) |