区域填充和图形的裁剪.doc

上传人:豆*** 文档编号:202970685 上传时间:2023-04-23 格式:DOC 页数:10 大小:50.50KB
收藏 版权申诉 举报 下载
区域填充和图形的裁剪.doc_第1页
第1页 / 共10页
区域填充和图形的裁剪.doc_第2页
第2页 / 共10页
区域填充和图形的裁剪.doc_第3页
第3页 / 共10页
资源描述:

《区域填充和图形的裁剪.doc》由会员分享,可在线阅读,更多相关《区域填充和图形的裁剪.doc(10页珍藏版)》请在装配图网上搜索。

1、淮阴工学院计算机科学系实验报告书课程名: 图形学与数字图像解决 题 目: 实验3 区域填充和图形的裁剪 班 级: 学 号: 姓 名: 评语:成绩: 指引教师: 批阅时间: 年 月 日1、实验目的1 通过实验,进一步理解和掌握内外测试填充算法填充算法;2 掌握该算法的基本过程;3 通过编程,会在VC环境下实现填充;2、实验环境 计算机、v+语言程序设计环境3、实验内容1、 用内外测试填充算法编程实现一种区域的填充;4、实验环节与源程序 实验环节1、 算法、原理清晰,有具体的设计环节; 2、 根据算法、环节或程序流程图,用vc+语言编写源程序;3、 编辑源程序并进行调试;4、 进行运营测试,并结合

2、状况进行调节;5、 对运营成果进行保存与分析;6、 打印源程序或把源程序以文献的形式提交;7、 按格式书写实验报告。 源代码区域填充代码:icluerphic.#ndem()nt y,x,x,y;nt graphdriver=DTECT; nt graphmode; pritf(RAUS:);n(,&1);ingrph(&graphdrver,&rahmode,); for(=y1;y=(n)(y1*sqrt()/);y-) 1(in)sqrt(y1*y-yy); fo(x-x1;x0;x+) pupxe(3+,200y,2); ppixel(30+x,0+(-),); fo(x=0;x;x+

3、) utpixel(0+x,200y,3); utpixel(300+x,0+(-y),); for(y=(int)(1sq(2)/-1);0;y-) =(it)sqrt(y*y1-y*); fo(=-1;x-y;+) ptpxe(00+x,0,1);tpixe(30+x,200(-y),8); r(=y;x0;x+) utpxl(300+x,0,2);putixel(0,0+(y),7); for(=;xy;x+) utpx(00+x,20y,);putpixel(0x,20(-y),6); fo(x=;x#incud #nclde #inlutyedf ructlat x,;oit;voi

4、d initaphis(voi);void Cod(Pont mT,int FamRB,o P,nsigedch*Fag);vd Cliping(Pint Frme,Pnt FameRB,ot LieSP,Point LineE);od man(vd)PoitFameT,rameRB;Poin P3;inigrphis();ecolor(RE);rmeT.=200;Fmey=100;meBx=0;rmeB.y=360;rctangl(int)rameL.x,(nt)FrameLT.y,(nt)ameRB.x,(it)raB.y);P0x=33;P0.80;P1x10;P.y30;P2x510;

5、.y=300;lie((int)P0.x,(in)P0.y,(int)P1,(in)1.y);lin(in)Px,(nt)P0.y,(nt)2.x,(int)P.y);lin(int)P1.x,(int).,(int)P2.x,(int)P2.y);geh();cleardece();rectangle((n)rmeLT.x,(int)FamTy,(it)FrmeRB,(int)FraeRB.y);Clipin(ameLT,FameB,P0,P1);lping(FraeL,FraRB,P0,P2);Cliping(FramLT,FrmB,P1,P);etch();cloerap();vod i

6、nitrpis(oid)n vr=VA,odeVGAHI;intero;iitgaph(&diver,de,);(ecod=grapresut())!=0)pritf(Gphics rr:%sn,graperrors(errcod);exit(1);void ode(PontFrameL,Pint FameRB,Point P,unsignedchr *Flg)unsinedchr fag=0;i(.xameL.x) flag+=1;if(P.xrameRx)fag+=2;f(rmeRB)fag+=;if(PyFmeLT.y) flag+=8;(*Flag)=f;void Clippg(Poi

7、nt FameT,Point FreRB,Poit LineSP,PoinneE)unsigned carlagS,flagEP,flagND,fagO;ouble k(LneP.yLineSP.y)/(ineE.x-Line.x);Coe(rmL,FrameB,LneSP,&flagSP);Code(FrameLT,Frame,ine,&flaP);fagAND=flagSP flagEP;(flagAND!=0)reun;wile(flgSP!=|flagE!0)flaOR=flagSP|fla;f(lO0x1)=)if(flagSP0x0)=)LinSP.y=ieSPy+k*(Frame

8、T.x-LineS.x);LiSP.x=FameLT.x;Coe(FraeLT,FrmeR,LinP,&faSP);lseLnP=LineEPy+k*(FrmeLT.x-LiEP.x);ineEPxrameLT;ode(FrmeL,Frame,LnEP,&fEP);if(fla0x02)=)if(flaP0x2)=2)LiP.y=LineSPy+k(FrameBx-neSP);inePx=FameRB.;Code(FraeLT,rmeRB,inSP,lagP);lseLineEPy=LieE.y+k*(rame.x-LieEP.);LieE.x=FrameRB.x;Cde(FramLT,rR,

9、ine,&flaP);i(flagR04)=4)if(flaP&0x04)=)LneSP.=ineSP.x+(FrmeRB.-LineSP.y)/k;LiS.Fram.y;Coe(FrmeL,FreRB,LineSP,&flagSP);eleinePxLineEP.x(FramRB.yLinP.y)/k;LineE.FramB.y;Code(FameLT,FrameR,ineE,&flagEP);i((lgOR0x8)=)f(flgS&0x08)=8)LinSPx=ineP.x(raeLTy-ineS.y)/k;LePy=FLT.y;Code(rmeT,rameRB,LinSP,&lagS);

10、elseLineEP.=Lnex+(FameLT.y-LineEP.y)/;LieEP.y=FraeLT.y;Cde(FrameT,FrameR,LinEP,&laP);flANDfagPflagEP;f(flgAN!=0)eurn;lie(int)LineP.x,(int)LnS.,(int)ineP.x,(int)LineEP.y);5、测试数据与实验成果 区域填充图:多边形裁剪图:6、实验体会 在这次实验中,我们进一步理解和掌握了扫描线填充算法,并且理解和掌握Sutrland 裁剪算法,并且运用此措施实现一种饼型图的绘制,用Suteland 算法编程实现用矩形窗口对多边形的裁剪,使我们更进一步的熟悉了tr 的运营环境。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!