上机实验3:图形填充与裁剪算法具体实现

上机实验3:图形填充与裁剪算法具体实现

ID:21164027

大小:315.69 KB

页数:20页

时间:2018-10-20

上机实验3:图形填充与裁剪算法具体实现_第1页
上机实验3:图形填充与裁剪算法具体实现_第2页
上机实验3:图形填充与裁剪算法具体实现_第3页
上机实验3:图形填充与裁剪算法具体实现_第4页
上机实验3:图形填充与裁剪算法具体实现_第5页
资源描述:

《上机实验3:图形填充与裁剪算法具体实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、信息与计算科学专业基础课ComputerGraphicsReportOfcourseexperiment计算机图形学课程实验报告实验题目填充与裁剪算法的实现班级计算091姓名王姣学号3090811002指导教师胡钢日期2012-5-3西安理工大学理学院应用数学系二零零八年春季学期-19--图形学课程实验报告-实验3填充与裁剪算法的实现@实验说明试验目的:掌握图形填充与裁剪算法的基本思想,并能上机编程实现相应的算法。。试验地点:教九楼401数学系机房实验要求(Direction):1.每个学生单独完成;2.开发语言为TurboC或C++,也可使用其它语言;

2、3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5.自己保留一份可执行程序,考试前统一检查和上交。@实验内容:实验题一1.1实验题目上机编程序实现多边形区域填充算法。要求:(1)多边形要求采用顶点表示,且顶点的个数和顶点坐标可以随机输入;(2)要求先画出多边形,画出多边形的同时要求标明各顶点坐标;(3)水平扫描线的顺序和填充颜色可以自由选择。1.2实验目的和意义1.熟悉并掌握编程实现多边形的画法2.学会画出多边形的同时要求标明各顶点坐标的算法如何在程序中实现3

3、.了解如何对多边形进行扫描变换4.了解如何对多边形进行扫描区域填充1.3程序制作步骤(包括算法的基本思想、流程图、设计步骤等)算法思想:多边形以n,x_array,y_array形式给出,其中x_array,y_array中存着多边形的n个顶点的x,y坐标。扫描线填色算法的基本思想是:用水平扫描线从上到下扫描由点线段构成的多段定义的多边形。每根扫描线与多边形各边产生一系列交点,将这些交点按照x坐标进行排序,将排序后的交点成对取出,作为两个端点,用所需填充的色彩画水平直线。多边形被扫描完毕,则填充结束扫描线算法的实现思想:-19--图形学课程实验报告-(1

4、)根据给出的顶点坐标数据,按y递增顺序建立ET表。(2)根据AET指针,使之为空。(3)使yi=ymin(ymin为顶点坐标中最小y值)。(4)反复做下述各步,直至yi=ymax(顶点坐标中y的最大值)或ET或AET为空。1.将ET表加入到AET中,并保持AET链中的记录按x值增大排序;2.对扫描线yi依次成对取出AET中xi值,并在每对xi之间填上所要求的颜色或图案;3.从AET表中删去yi+1的边记录;4.对保留下来的AET中的每个边记录,x域中的值用xi+1/m代替xi,并重新按x递增排序;5.使yi+1,以便进入下一轮循环。多边形的填充过程,对于

5、一条扫描线,多边形的填充过程可以分为四个步骤:(1)求交:计算扫描线与多边形各边的交点;(2)排序:把所有交点按x值递增顺序排序;(3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间;(4)填色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。1.4主程序/*坐标系:屏幕左上角为原点,向下为纵坐标正方向*//*可修改多边形边数polydeflen和多边形按顺时针的顶点定义polydef来改变多边形*/#include"graphics.h"/*加入c图形库*/#include"stdio.h"#incl

6、ude"math.h"/*数学库*/#include"conio.h"/*键盘控制*/#defineMP100/*多边形边数*/#include#definefalse0voidedge_mark(intarr[][2],intvalue,intpolydeflen)/*多边形直线扫描变换*/{intby,x,y,ax,ay;/*by为上点纵坐标,x、y当前点横、纵坐标,ax、ay下点横、纵坐标*/inti,j;floatk;/*k为直线斜率的倒数*/by=arr[polydeflen-1][1];-19--图形学课程实验报告-for

7、(i=0;i=0)putpixel(x,y,value);getch();//if(getch()==17)exit();/*读入键盘按键*/if(ay

8、(j=y-1;j>ay;j--)putpixel(x+(int)((y-j)*k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。