版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标掌握中点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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-浙江-浙江有线广播电视机务员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-浙江-浙江假肢制作装配工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-河南-河南热力运行工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-河北-河北造林管护工三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-河北-河北机械热加工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-河北-河北兽医防治员五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-江西-江西水生产处理工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-山西-山西工程测量员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-安徽-安徽图书资料员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-天津-天津保育员一级(高级技师)历年参考题库含答案详解
- 2025-2026学年浙江省宁波市鄞州区九年级(上)期中英语试卷
- 茶叶营养与功能 课件 第五章 茶与精神卫生
- 《网络协议》课件
- 建筑工地物体打击应急预案范文
- 机械顶管工作井及接收井逆作法施工方案
- 柴油安全技术说明书(MSDS)
- 2023年波峰焊工程师年度总结及来年计划
- HY/T 0366-2023海洋数据分类分级标准
- 牙体缺损的修复-修复体的粘接粘固与完成
- 高中音乐-【课堂实录】学堂乐歌教学设计学情分析教材分析课后反思
- 三上道德与法治第一单元《战胜困难更快乐》课件
评论
0/150
提交评论