基于MFC的图形图像处理方法.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MFC的图形图像处理方法

基于MFC的图形图像处理 ——李明(08.2)2008200698 §1 MFC平台的简单应用 一 用C语言中自带的函数画点。 其步骤如下: 建立一个工程:“文件”——“新建”——选中“”-——” ”(在其中键入工程名称,如“TEST1”)—— (设置为自己想要存放的位置)——“确定”——“”——“完成”——“确定”。 左击“ ”即可出现所见工程中的所有类。若要实现画图功能,则必须要在其中的“”类中的“”函数中加入我们要实现功能所需要执行的代码。 现在可以先后通过工具栏中的“”、“”按钮进行编译执行。其结果如下: 图一 图一为空白的,那是因为我们没有在“”函数中加任何代码。(每次编译执行时,应把“图一”所示界面关闭,否者进行编译执行会出错。) 利用C语言中自带的函数画一个点: 双击“”-在函数“void CTEST1View::OnDraw(CDC* pDC)”提示的地方加上所要执行的代码,这里为:pDC-SetPixel(10,10,RGB(255,0,0));(该函数的前两个参数为所画点的位置坐标(x,y),第三个参数为其彩色值RGB三个分量各自的值)。经“”、“”后,其结果如下: 图二 可以看出所画此点极不清楚,我们可以自己编写一个画点函数。 二 改进的画点函数。 此方法的思想是:不只画出一个点P,同时也画出P附近的点。在图像中可看做显示一个像素及其领域中的像素。在这里以画出所有离P点水平和垂直距离均小于等于5的点为例。基于此思想,首先按照上一部分所说的“步骤1”建立一个工程“TEST2”,然后在“”函数中添加如下代码: for (int i=-5;i=5;i++) { for (int j=-5;j=5;j++) { pDC-SetPixel(10+i,10+j,RGB(255,0,0)); } } 经编译执行后可得: 图三 图二与图三相比,后者清楚了许多。这是因为图像是由许许多多的像素组成的,一个像素相对于整幅图来说是相当小的。故图二所画的一个点似乎是看不到的。 三 利用C语言中的函数直接画线。 如同前两部分,首先建立一个工程TEST3,然后在“”函数中执行如下命令: pDC-MoveTo(10,10); pDC-LineTo(100,100); 经编译执行后就画出了一条从点(10,10)至点(100,100)的直线。所画直线如下图所示: 图四 §2 生成直线的扫描转换算法 一 生成直线的DDA算法 图五 2.直线DDA算法描述: ,且(x1,y1)和(x2,y2)分别为所求直线的起点终点坐标  可通过计算由x方向的增量x引起y的改变来生成直线: =+x (1-) =m+b=m(+△x)+b= △x·m (1-)  也可通过计算由y方向的增量y引起x的改变来生成直线: =y (1-) ===+ (1-) 则 当时,。 (1-5) 为了减少误差积累,仅当|m|1是采用(1-6)的方法。 当|m|1时, 应用时,的方法。 (1-6) 3:DDA算法的实现: ①建立工程TEST4。 ②添加类Cline:右击“”——“New Class”——” ”的属性为“”;“ ”为“CLine”——“确定”。 ③添加类Cline的成员:右击“”——” Add Member Variable…”——” ”为“Cpoint”; “”为“point1”; “”——“确定”。用同样的方法加一个成员变量point2。 ④将Cline的数据成员初始化:双击“”——通过“ point1.x=0; point1.y=0;”将point1初始化。同样将point2初始化。 ⑤添加类Cline的带参数的构造函数: 在上一步的构造函数下面加上 CLine::CLine(int x1,int y1,int x2,int y2) { point1.x=x1; point1.y=y1; point2.x=x2; point2.y=y2; } 双击“”——在“CLine();”后面加上“CLine(int x1,int y1,int x2,int y2);” ⑥在类Cline中增加函数void CLine::CLineddaplot(CDC *pDC): 右击“”——“Add Member Function…”——“”为“void”;“ ”为“CLineddaplot(CDC *pDC)”——”确定”——双击函数“”添加基于DDA算法思想的画线函数代码。 ⑦在“”函数中的相应:双击“”类中的“”—— 在“TEST4View.cpp”的前面加上#includeLine.h——在void CTEST5View::OnDraw(CDC* pDC)提示的地方加入 CLine line(10,10,40,50); line.

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档