




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机图形学基础 实验报告实验序号:03 实验项目名称:多边形填充算法的实现学号姓名专业、班级软件工程实验地点计-201指导教师时 间2016.4.05一、实验目的及要求多边形的填充算法有很多种,比如说边缘填充算法,栅栏填充算法,还有种子填充算法。种子填充算法和其他几种的算法采用的是完全不同的方法。二、实验设备(环境)及要求1、了解MATLAB软件基本操作,熟悉基本计算和绘图功能。 2、环境要求:配有Windows XP及以上操作系统,安装MATLAB软件的完整版。 3、实验过程中,务必仔细观察上机现象,记录必要信息,分析实验结果,按要求写出实验报告。三、实验内容与步骤题目:多边形填充算法的
2、实现 四、实验结果与数据处理class CDrawView:public CViewprotected:/create from serialization onlyCDrawView();DECLARE_DYNCREATE(CDrawView)public:CDrawDoc*GetDocument();public:CPoint spt7,s_point;.void CDrawView:OnDraw(CDC*pDC)CDrawDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);CPen newpen(PS_SOLID,1,RGB(0,0,255);CPen*o
3、ld=pDC->SelectObject(&newpen);pDC->TextOut(20,20,"双击鼠标左键,生成多边形");pDC->TextOut(20,50,"先在多边形内部单击鼠标右键,选择种子点,然后单击功能菜单实现填充");pDC->SelectObject(old);void CDrawView:OnSeedfill()CclientDC dc(this);int fill=RGB(0,255,0);int boundary=RGB(0,0,255);int x,y,p0,pmin,pmax;for(in
4、t m=1;m<7;m+)for(int n=0;n<7-m;n+)if(sptn.y<sptn+1.y)p0=sptn.y; sptn=sptn+1;sptn+1=p0;pmax=spt0.y;pmin=spt6.y;x=s_point.x;y=s_point.y;for(;y<=pmax;y+)int current=dc.GetPixel(x,y);while(current!=boundary)&&(current!=fill)dc.SetPixel(x,y,fill);x+;current=dc,GetPixel(x,y);x=s-point.
5、x;x-;current=dc.GetPixel(x,y); while(current!=boundary)&&(current!=fill)dc.SetPixel(x,y,fill);x-;current=dc,GetPixel(x,y);x=s-point.x;x=s_point.x;y=s_point.y-1;for(;y>=pmin;y-)int current=dc.GetPixel(x,y);while(current!=boundary)&&(current!=fill)dc.SetPixel(x,y,fill);x+;current=dc
6、,GetPixel(x,y);x=s-point.x;x-;current=dc.GetPixel(x,y); while(current!=boundary)&&(current!=fill)dc.SetPixel(x,y,fill);x-;current=dc,GetPixel(x,y);x=s-point.x;void CDrawView:OnLButtonDblClk(UINT nFlags,CPoint point)RedrawWindow();CDC*pDC=GetDC(); CPen newpen(PS_SOLID,1,RGB(0,0,255); CPen*old
7、=pDC->SelectObject(&newpen);spt0=CPoint(100,100); spt1=CPoint(250,100); spt2=CPoint(250,250);spt3=CPoint(100,250);spt4=CPoint(150,200); spt5=CPoint(90,150); spt6=CPoint(160,150); spt7=CPoint(100,100); pDC->SelectObject(old);CView:OnLButtonDblClk(nFlags,point);void CDrawView:OnLButtonDown(U
8、INT nFlags,CPoint point)s_point=pont;CView:OnRButtonDown(nFlags,point);CView:OnLButtonDblClk(nFlags, point);void CMy2dcadView:makeet()()int p1=0,p2=1;int smally,bigy,smallx,bigx;Edge*ep1;for(; p1<npoint;p1+,p2=(+p2)% npoint)if(lhpointp11=lhpointp21)continue;else if (lhpointp11<lhpointp21)small
9、y=lhpointp11;bigy=lhpointp21;smallx=lhpointp10;bigx=lhpointp20; else smally=lhpointp21;bigy=lhpointp11;smallx=lhpointp20;bigx=lhpointp10;ep1=new Edge;ep1->ymax=bigy;ep1->x=(float)smallx;ep1->deltax=(float)(smallx-bigx)/(smally-bigy);ep1->nextEdge=etsmally;etsmally=ep1;void CMy2dcadView:O
10、nRButtonDown(UINT nFlags,CPint point)/TODO:Add your message handler code here and/or call defaultCView:OnRButtonDown(nFlag,point);CClientDC dc(this);COLORREF Color;int scany=-1;int i=0,j=0;int k;int r,g,b;Edge*etp;makeet();while (et+scany=NULL);While(scany<600)if(etscany!=NULL)etp=etscany;while(etp)i=scany;while(i<etp->ymax)j=(int)etp->x;j+;while(i<600)Color=dc.GetPixel(j,i);r=255-GetRValue(Color);G=255-GetGValue(Color);B=25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区门面租赁合同范本
- 2025保险合同 建筑工程投保申请书
- 房租保温工程合同范本
- 2025年度成都市租房合同范本
- 公司店面租赁合同范本
- 2025二手车辆限时委托销售合同(下钱独家)
- 项目人员调度合同范本
- 山地建材租赁合同范本
- 2025届福建省仙游县郊尾中学高三一轮复习阶段性考试(生物试题理)试题含解析
- 中国美术学院《数据分析与可视化实践》2023-2024学年第一学期期末试卷
- SL 288-2014 水利工程施工监理规范
- 5WHY分析法培训课件
- (高清版)TDT 1031.6-2011 土地复垦方案编制规程 第6部分:建设项目
- 国企素质测评试题及答案
- 2024春苏教版《亮点给力大试卷》数学六年级下册(全册有答案)
- 中考英语语法填空总复习-教学课件(共22张PPT)
- 综合办公楼装饰装修工程招标文件
- 玻璃体切除手术配合课件
- 手足口病小讲课护理课件
- 2024年浙江杭州地铁运营分公司招聘笔试参考题库含答案解析
- 《质量检验培训》课件
评论
0/150
提交评论