版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标掌握中点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类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国安全教育培训感言课件
- 《税法》第8章:特点目的税法
- 建筑学专业就业前景
- 全员培训课件手机播放
- 宝鸡职业发展规划指南
- 人工智能训练方法
- 安全督导新举措讲解
- 贷款业务话术书籍
- 动物医学就业前景分析
- 光电工厂安全培训内容课件
- 2026年安全员考试题库300道附完整答案【必刷】
- 销售行业合同范本
- 2026年民用无人机操控员执照(CAAC)考试复习重点题库标准卷
- 英语试卷+答案黑龙江省哈三中2025-2026学年上学期高二学年12月月考(12.11-12.12)
- 中北大学2025年招聘编制外参编管理人员备考题库(一)参考答案详解
- 中华联合财产保险股份有限公司2026年校园招聘备考题库及一套完整答案详解
- 诗经中的爱情课件
- 2025年烟花爆竹经营单位安全管理人员考试试题及答案
- 2025天津大学管理岗位集中招聘15人参考笔试试题及答案解析
- 2025年云南省人民检察院聘用制书记员招聘(22人)考试笔试参考题库及答案解析
- TCAMET02002-2019城市轨道交通预埋槽道及套筒技术规范
评论
0/150
提交评论