版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、扫描线填色程序主程序名为fill_area(count, x, y),其中参数x, y是两个一维数组,存放多边形顶点(共count个)的x和y坐标。它调用8个子程序,彼此的调用关系如图所示。各子程序的功能为:图2.3.5 fill_area的程序结构typedef struct int y_top;float x_int;int delta_y;floaat x_change_per_scan; EACH_ENTRY;EACH_ENTRY SIDESMAX_POINT;int xMAX_POINT, yMAX_POINT;int side_count, first_s, last_s, sca
2、n, bottomscan, x_int_count, r;fill_area(count, x, y)int count, x , y ;sort_on_bigger_y(count);first_s=1;last_s=1;for (scan=sides1.y_top; scanbottomscan ?; scan - -) up date_first_and_last(count, scan); process_x_intersections(scan, first_s, last_s); draw_lines (scan, x_int_count, first_s); update-_s
3、ides_list ( ); void put_in_sides_list(entry, x1, y1, x2, y2, next_y);int entry, x1, y1, x2, y2, next_y;int maxy;float x2_temp, x_change_temp;x_change_temp = (float) (x2-x1) / (float) (y2-y1);x2_temp =x2; /*以下为退缩一点操作. */if (y2y1) & (y2next_y) y2 - - ; x2_temp - = x_change_temp; else if (y2next_y) y2+
4、; x2_temp+=x_change_temp; /* 以下为插入活性表操作. */maxy = (y1 y2)? y1: y2;while ( entry 1) & (maxy sides entry -1. y_top) sidesentry=sides entry ?; entry - -; sidesentry. y_top=maxy;sidesentry. delta_y =abs(y2-y1)+1;if (y1y2) sidesentry. x_int =x1;else sidesentry.x_int=x2_temp; sidesentry. x_change_per_scan
5、=x_change_temp; void sort_on_bigger_y(n)int n;int k, x1, y1;side_count=0;y1=yn;x1=xn;bottomscan=yn;for (k=1; kn+1; k+) if (y1 ! =yk) side_count +; put_in_sides_list(side_count, x1, y1, xk, yk); else move (short)x1, (short)y1); line(short)xk, (short)y1, status); if (yk =scan) & (last_s first_s) & (si
6、desentry. x_int sidesentry-1. x_int) swap (sidesentry, sidesentry-1); entry - -;void process_x_intersections(scan, first_s, last_s)int scan, first_s, last_s;int k;x_int_cout=0;for(k=first_s; k0) x_int_count +; sort_on_x(k, first_s);void draw_lines(scan, x_int_count, index)int scan, x_int_count, inde
7、x;int k, x, x1, x2;for (k=1; k (int) (x_int_count/2+1.5); k+) while(sidesindex. delta_y = = 0) index +; x1=(int)(sidesindex. x_int +0.5); index +; while(sidesindex.delta_y = = 0) index +; x2 = (int) (sides index. x_int +0.5); move(short)x1, (short)scan); line(short)x2, (short)scan, status); index +;
8、void update_sides_list( )int k;for (k=first_s; k0) sidesk.delta_y - -; sidesk. x_int - = sidesk. x_change_per_scan; 1、sort_on_bigger_y子程序的主要功能是按照输入的多边形,建立起活性边表。操作步骤是:对每条边加以判断:如非水平边则调用put_in_side_list子程序放入活性边来;如是水平边则直接画出。2、put_in_sides_list子程序的主要功能是将一条边存入活性边表之内。操作步骤是:对该边判别是否左顶点或右顶点,如果将入边之终点删去,按照y_top
9、的大小在活性边表中找到该点的合适位置,在该边的位置中填入数据。3、update_first_and_last子程序的主要功能是刷新活性边表的first和last两根指针的所指位置,以保证指针指出激活边的范围。4、process_x_intersections子程序的主要功能是对活性边表中的激活边(即位于first和last之间的,并且? y? 0的边)按照x_int的大小排序。操作步骤是:从first到last,对每一根? y? 0的边,调用sort_on_x子程序排入活性边表中合适位置。5、sort_on_x子程序主要功能是将一条边sideentry,在活性边表的first到entry之间按
10、x_int的大小插入合适位置。操作步骤是:检查位于entry的边的x_int是否小于位置entry-1的边的x_int,如是,调用swap子程序交换两条边的彼此位置。6、swap子程序的主要功能是交换活性边表中两条相邻位置边的彼此位置。7、draw_lines子程序的主要功能是在一条扫描线位于多边形内的部分,填上指定的色彩。操作步骤是:在活性边表的激活边范围内,依次取出y 0两边的x_int,作为两个端点(x1, scan),(x2, scan),画一条水平线。8、update_sides_list子程序的主要功能是刷新活性边表内激活边的值:y=Dy-1 x_int=x_int_x_chang_per_scan;内容总结(1)扫描线填色程序主程序名为fill_area(c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西培贤国际职业学院单招综合素质考试题库附答案详解(完整版)
- 2026年嵩山少林武术职业学院单招综合素质考试题库附参考答案详解(黄金题型)
- 2026年山西经贸职业学院单招综合素质考试题库附答案详解(轻巧夺冠)
- 2026年广东水利电力职业技术学院单招职业技能测试题库带答案详解(培优)
- 2026年广西国际商务职业技术学院单招职业倾向性测试题库有完整答案详解
- 2026年广西信息职业技术学院单招职业技能测试题库附参考答案详解(满分必刷)
- 2026年山西警官职业学院单招职业技能考试题库附答案详解(基础题)
- 2026年山西铁道职业技术学院单招职业倾向性测试题库含答案详解(轻巧夺冠)
- 2026年规模化猪场粪污沼气回收利用方法学要点与案例
- DB511045-2022地理标志产品 资中血橙生产技术规程
- 2026浙江绍兴理工学院招聘32人笔试备考题库及答案解析
- 宁德时代入职测评题
- 《银行会计(第四版)》全套教学课件
- (自2026年1月1日起施行)《增值税法实施条例》的重要变化解读
- 个体化疫苗研发中的成本效益:精准分析
- 2025福建泉州丰泽城市建设集团有限公司招聘第二批招商专员复试及环节人员笔试历年难易错考点试卷带答案解析
- DB34∕T 5013-2025 工程建设项目招标代理规程
- 2026年江西司法警官职业学院单招职业技能考试题库及答案1套
- 去极端化宣传课件
- ERAS理念下术后早期活动的护理方案
- 2025财政部部属单位招聘笔试历年参考题库附带答案详解
评论
0/150
提交评论