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

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

ID:59526706

大小:389.50 KB

页数:12页

时间:2020-11-08

基于MFC的图形图像处理方法.doc_第1页
基于MFC的图形图像处理方法.doc_第2页
基于MFC的图形图像处理方法.doc_第3页
基于MFC的图形图像处理方法.doc_第4页
基于MFC的图形图像处理方法.doc_第5页
资源描述:

《基于MFC的图形图像处理方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于MFC的图形图像处理——李明(08.2)§1MFC平台的简单应用一用C语言中自带的函数画点。其步骤如下:1.建立一个工程:“文件”——>“新建”——>选中“”-——>””(在其中键入工程名称,如“TEST1”)——>(设置为自己想要存放的位置)——>“确定”——>“”——>“完成”——>“确定”。2.左击“”即可出现所见工程中的所有类。若要实现画图功能,则必须要在其中的“”类中的“”函数中加入我们要实现功能所需要执行的代码。现在可以先后通过工具栏中的“”、“”按钮进行编译执行。其结果如下:图一图一为空白的,那是因为我们没有在“”函数中加任何代码。(每次编译执行时,应

2、把“图一”所示界面关闭,否者进行编译执行会出错。)3.利用C语言中自带的函数画一个点:双击“”->在函数“voidCTEST1View::OnDraw(CDC*pDC)”提示的地方加上所要执行的代码,这里为:pDC->SetPixel(10,10,RGB(255,0,0));(该函数的前两个参数为所画点的位置坐标(x,y),第三个参数为其彩色值RGB三个分量各自的值)。经“”、“”后,其结果如下:图二可以看出所画此点极不清楚,我们可以自己编写一个画点函数。二改进的画点函数。此方法的思想是:不只画出一个点P,同时也画出P附近的点。在图像中可看做显示一个像素及其领域中的像素

3、。在这里以画出所有离P点水平和垂直距离均小于等于5的点为例。基于此思想,首先按照上一部分所说的“步骤1”建立一个工程“TEST2”,然后在“”函数中添加如下代码:for(inti=-5;i<=5;i++){for(intj=-5;j<=5;j++){pDC->SetPixel(10+i,10+j,RGB(255,0,0));}}经编译执行后可得:图三图二与图三相比,后者清楚了许多。这是因为图像是由许许多多的像素组成的,一个像素相对于整幅图来说是相当小的。故图二所画的一个点似乎是看不到的。三利用C语言中的函数直接画线。如同前两部分,首先建立一个工程TEST3,然后在“”函

4、数中执行如下命令:pDC->MoveTo(10,10);pDC->LineTo(100,100);经编译执行后就画出了一条从点(10,10)至点(100,100)的直线。所画直线如下图所示:图四§2生成直线的扫描转换算法一生成直线的DDA算法。1.在计算机中画直线均是通过画离直线较近的整数点来实现的,如下图所示:图五2.直线DDA算法描述:设直线的解析式为y=mx+b即,且(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标.则  可通过计算由x方向的增量△x引起y的改变来生成直线:=+△x(1-1)=m+b=m(+△x)+b=△x·m(1-2) 也可通过计算由

5、y方向的增量△y引起x的改变来生成直线:=△y(1-3)===+(1-4)则当时,。(1-5)为了减少误差积累,仅当

6、m

7、1是采用(1-6)的方法。当

8、m

9、1时,应用时,的方法。(1-6)3:DDA算法的实现:①建立工程TEST4。②添加类Cline:右击“”——>“NewClass”——>””的属性为“”;“”为“CLine”——>“确定”。③添加类Cline的成员:右击“”——>”AddMemberVariable…”——>””为“Cpoint”;“”为“point1”;“”——>“确定”。用同样的方法加一个成员变量point2。④将Cline的数据成员初始化:双击

10、“”——>通过“point1.x=0;point1.y=0;”将point1初始化。同样将point2初始化。⑤添加类Cline的带参数的构造函数:在上一步的构造函数下面加上CLine::CLine(intx1,inty1,intx2,inty2){point1.x=x1;point1.y=y1;point2.x=x2;point2.y=y2;}双击“”——>在“CLine();”后面加上“CLine(intx1,inty1,intx2,inty2);”⑥在类Cline中增加函数voidCLine::CLineddaplot(CDC*pDC):右击“”——>“AddMe

11、mberFunction…”——>“”为“void”;“”为“CLineddaplot(CDC*pDC)”——>”确定”——>双击函数“”添加基于DDA算法思想的画线函数代码。⑦在“”函数中的相应:双击“”类中的“”——>在“TEST4View.cpp”的前面加上#include"Line.h"——>在voidCTEST5View::OnDraw(CDC*pDC)提示的地方加入CLineline(10,10,40,50);line.CLineddaplot(pDC);对TEST4编译执行,便可用DDA算法画出一条如下图所示的从点(10,1

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

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

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