您好,欢迎访问三七文档
学习目标掌握中点Bresenham画线法的程序实现;操作步骤首先建立一个基于MFC应用的工程创建一个CP2类用于存放顶点坐标创建一个Cline类用于实现画线算法本章小结创建MFC工程step1创建MFC工程step2创建MFC工程step3创建MFC工程step4创建MFC工程step5创建MFC工程step6创建MFC工程step7创建MFC工程step8创建MFC工程step9创建MFC工程step10创建MFC工程工程完成后,解决方案资源管理器创建MFC工程类视图创建CP2类Step1类视图中,点击主类后,点击鼠标右键,点击“类”创建CP2类Step2添加类:选择C++类,点击“添加”创建CP2类Step2:类名取为CP2,点击“完成”创建CP2类Step3:出现如图所示示意图•CP2中需包含两个成员变量,m_x与m_y来表示点的坐标,同时添加构造函数对这两个成员变量赋值。创建CP2类Step4:添加成员变量,点击“添加变量”创建CP2类Step5:添加成员变量m_x创建CP2类Step6:类似操作添加成员变量m_y创建CP2类Step7:添加带参数的构造函数创建CP2类Step7:添加带参数的构造函数,如图所示,点击“完成”创建CP2类Step8:进入类CP2的实现文件P2.cpp中。创建CP2类Step9:在构成函数CP2(doublex,doubley)中实现成员变量m_x与m_y的初始化。创建CLine类•Cline类实现画直线的功能–成员变量:直线的起点坐标CP2m_P0–成员变量:直线的终点坐标CP2m_P1–成员变量:画直线的颜色COLORREFm_color–成员函数:voidMoveTo(CDC*pDC,CP2P0),其功能是定位到直线的起始点。–成员函数:voidLineTo(CDC*pDC,CP2P1),其功能是利用Bresenham算法画出起始点在m_P0,终点在m_P1的直线。创建CLine类Step1类视图中,点击主类后,点击鼠标右键,点击“类”创建CLine类Step2:选中C++类,单击“添加(A)”按钮,创建CLine类Step3:输入类名“CLine”。创建CLine类Step4:添加成员变量,点击“添加变量(B)”创建CLine类Step5:添加成员变量CP2m_P0,点击“完成”创建CLine类Step6:类似操作,添加成员变量CP2m_P1,点击“完成”创建CLine类Step7:类似操作,添加成员变量COLORREFm_color,在“变量类型(V)”中输入COLORREF,点击“完成”创建CLine类Step8:添加成员函数,点击“添加函数(U)”创建CLine类Step9:成员函数MoveTo,第一个参数类型CDC*,第二个参数类型CP2,输入参数名后点击“添加(A)”。创建CLine类Step10:完成成员函数MoveTo的功能。在Line.cpp文件中的MoveTo函数中添加“m_P0=P0;”的语句,使成员变量m_P0指向直线的起始点。创建CLine类Step11:添加成员函数,点击“添加函数(U)”创建CLine类Step12:成员函数LineTo,第一个参数类型CDC*,第二个参数类型CP2,输入参数名后点击“添加(A)”。创建CLine类Step13:添加#include“math.h”和#defefineRound(x)floor((x)+05)用于取整。完善成员函数LineTo的功能。教材P92的程序在View中实现画线功能在CBresenhamLineView类中实现–获取直线的两个端点坐标。•创建两个成员变量CP2m_P0;CP2m_P1来保存直线的两个端点坐标。•CBresenhamLineView中实现画线功能。在View中实现画线功能Step1:CBresenhamLineView类中添加成员变量CP2m_P0。选中CBresenhamLineView,单击右键在View中实现画线功能Step2:CBresenhamLineView类中添加成员变量CP2m_P0。在View中实现画线功能Step3:CBresenhamLineView类中添加成员变量CP2m_P1。在View中实现画线功能Step4:CBresenhamLineView类中添加成员变量CRectm_rect。在View中实现画线功能Step5:修改CBresenhamLineView类中的OnDraw函数,得到画图的区域。在View中实现画线功能Step6:在View中画线需要执行的操作步骤–按下鼠标左键,产生WM_LButtonDown事件,确定直线的起始点。–按下鼠标左键后,拖动鼠标一段距离,就是直线的长度。–释放鼠标,产生WM_LButtonUp事件,确定直线的终点。在View中实现画线功能Step7:获取CBresenhamLineView类的鼠标左键按下的事件,在View中实现画线功能Step9:在CBresenhamLineView类的属性中的消息项中,点击WM_LButtonDown在View中实现画线功能Step10:完成CBresenhamLineView类WM_LButtonDown的事件处理。在View中实现画线功能Step11:在CBresenhamLineView类的属性中的消息项中,点击WM_LButtonUp在View中实现画线功能Step12:完成CBresenhamLineView类WM_LButtonUp的事件处理。在BresenhamLineView.h中添加“#includeLine.h”画线结果
本文标题:中点画线法程序实现
链接地址:https://www.777doc.com/doc-4778110 .html