版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、区域填充 步骤步骤1:建立工程文件:扫描线填充:建立工程文件:扫描线填充; 步骤步骤2:建立成员变量和成员函数:建立成员变量和成员函数protected: int stack10000; /定义栈; int stack_top; /栈顶位置 COLORREF FillColor;/填充色public:int stackpop(); /出栈;void stackpush(int p_xy); /入栈int isstackempty(); /判断栈是否为空void setstackempty(); /清空栈void floodfill4(int x,int y, COLORREF oldcolor
2、,COLORREF newcolor); /填充函数 步骤3:在构造函数中,对变量和栈初始化;CSampleseedfillView:CSampleseedfillView()/ TODO: add construction code herestack_top=0; FillColor=RGB(0,0,0); 步骤4:编写成员函数程序void CSampleseedfillView:setstackempty() int i; for(i=0;i0) return 1; else return 0; void CSampleseedfillView:stackpush(int p_xy) s
3、tack_top+=1; stackstack_top=p_xy; int CSampleseedfillView:stackpop() int val; val=stackstack_top; stack_top=stack_top-1; return val; 步骤5:编写扫描线填充算法 void CSampleseedfillView:floodfill4(int x, int y, COLORREF oldcolor, COLORREF newcolor) CDC * pDC=GetDC();int xl,xr,x0,xnextspan,yu,yd; bool spanNeedFill
4、; /将栈清空 setstackempty(); /种子入栈 stackpush(x); stackpush(y); while(isstackempty()!=0) /栈顶出栈,注意出栈顺序y= stackpop(); x= stackpop();yu=y;yd=y;pDC-SetPixel(x,y,newcolor);x0=x+1;while(pDC-GetPixel(x0,y)=oldcolor) /向右填充 pDC-SetPixel(x0,y,newcolor);x0+; xr = x0-1; /最右元素 x0 = x-1;while(pDC-GetPixel(x0,y) =oldco
5、lor) /向左填充 pDC-SetPixel(x0,y,newcolor); x0-;xl = x0+1; /最左元素/处理下面一条扫描线x0 = xl;yd = yd+1;while (x0GetPixel(x0,yd)=oldcolor) if (spanNeedFill=FALSE) spanNeedFill=TRUE; x0+;if(spanNeedFill)/状态有改变,入栈 stackpush(x0-1);stackpush(yd);spanNeedFill=FALSE; /end ifx0+;/End of while(x0=xr) yu = yu-1;/处理上面一条扫描线 x
6、0 = xl; while (x0GetPixel(x0,yu)=oldcolor) if (spanNeedFill=FALSE) spanNeedFill=TRUE;x0+; if(spanNeedFill) stackpush(x0-1);stackpush(yu);spanNeedFill=FALSE; /end if x0+;/End of while(x0SelectObject(&PenBlue); POINT polygon8=300,120,390,160,430,320, 180,300,150,240,180,180,200,240,230,168; pDC-Po
7、lygon(polygon,8); /定义种子位置,背景色oldcolor和填充色newcolor intx=300; inty=200; COLORREF newcolor=RGB(255,0,0); COLORREF oldcolor=RGB(255,255,255); /调用扫描线填充算法程序 floodfill4(x,y, oldcolor,newcolor); 7.添加菜单响应函数 void CTianchongView:Onplatete() / TODO: Add your command handler code hereCColorDialog ccd(FillColor,CC_FULLOPEN);if(ccd.DoModal()=IDOK)FillColor=ccd.GetColor();RedrawWindow();/刷新屏幕 void CTianchongView:Ontianchong() / TODO: Add your command handler co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开题报告:虚拟医学临床诊疗培训云平台设计与应用
- 开题报告:新时代内地西藏班爱国主义教育序列化活动课程实践研究
- 中考地理总复习阶段填图06 中国地理概况(原卷版)
- 2024年广州商务写字楼租赁协议范本版
- 2024年劳动协议安全管理制度样本解析版B版
- 2024年幼儿园中班科学活动教案-好玩的拓印
- 2024年度企业办公设备采购与服务协议版B版
- 建设项目需征占用林地定额计划行政工作计划
- 2024双拥工作总结与计划
- 2024高三化学教师的工作计划
- 2024年江苏省苏州市中考数学试卷含答案
- 软件测试汇报
- 吉林省长春市第一〇八学校2024-2025学年七年级上学期期中历史试题
- 无薪资合同范例
- GB/T 22082-2024预制混凝土衬砌管片
- 充电电缆产品入市调查研究报告
- 初中《孙中山诞辰纪念日》主题班会
- 5.5 跨学科实践:制作望远镜教学设计八年级物理上册(人教版2024)
- 2024年时事政治题库附参考答案(综合题)
- 阿斯伯格综合症自测题汇博教育员工自测题含答案
- 隧道及地下工程基础知识单选题100道及答案解析
评论
0/150
提交评论