




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
计算机图形学实验 第一篇:计算机图形学实验实验三MFC画直线最近自己在学习如何在VC6.0开发环境下的使用MFCAppWizard(exe)来绘画一条直线,虽然比较简单,通过这样的练习可以帮助你熟悉MFC的开发环境以及其中的消息传递机制,希望对于像我一样初入MFC图形绘制学习的人有帮助第一步:构建MFC窗体打开VisualC++6.0编译器新建→工程→MFCAppWizard(exe),工程名以DrawLine为例,然后确定。为了方便,在MFC应用程序向导—步骤1当中选择“单文档”,其余所有的步骤都为默认值,直接“完成”。这样一个简单的MFC窗体就构建好了,自己不妨Compile—Build—BuildExecute一下。第二步:编辑菜单项选择ResourceView视窗展开Menu文件夹,左键双击IDR_DRAWLITYPE,右边就会出现菜单图形编辑界面,为了简化,我们只在添加帮助→DrawLine功能选择项。双击空白会弹出“菜单项目属性”对话框。ID:ID_DRAW_LINE;标明:DrawLine(&D),其它的为缺省。第三步:建立消息命令如果此时运行该程序,你会发现帮助—DrawLine的功能选项是灰色的,原因就在于我们还没有添加该功能的消息命令相应函数。通过“查看—MessageMaps—Project:DrawLine—Classname:CDrawLineView—ObjectIDs:ID_DRAW_LINE—选定COMMAND—AddFunction„”,其它为默认,最后确定完成。现在如果再重新运行该程序的话,会发现原来的灰色已经消除了。第四步:添加鼠标消息响应打开ClassView视窗,右键选定CDrawLineView,选择AddWindowsMesssageHandler会弹出对话框,完成CDrawLineView类的WM_LBUTTONDOWN、WM_MOUSEMOVE、WM_LBUTTONUP三个Windows消息事件的新建。第五步:添加响应代码首先,在ClassView视窗中双击CDrawLineView会定位到“DrawLineView.h:interfaceoftheCDrawLineViewclass”的文件,添加CDrawLineView类的成员:protected:intm_Drag;POINTm_pPrev;POINTm_pOrigin;三个成员变量。视窗中展开CDrawLineView类,双击定位OnLBUTTONDOWN()函数。在该函数消息响应处添加如下代码://建立好绘图的设备环境CClientDCdc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);//获取起始点坐标m_pPrev=point;m_pOrigin=point;m_Drag=1;然后,定位于OnMouseMove(),添加如下代码(其中关键用到了橡皮筋技术)://建立好绘图的设备环境CClientDCdc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);dc.SetROP2(R2_NOT);//橡皮筋绘图技术//判断是否BUTTONDOWNif(m_Drag){dc.MoveTo(m_pOrigin);dc.LineTo(m_pPrev);dc.MoveTo(m_pOrigin);dc.LineTo(point);}m_pPrev=point;最后,在OnLBUTTONDOWN()添加代码:m_Drag=0;程序运行效果图实验4实现圆的生成算法一、实验目的1.熟悉CDC图形程序库;2.掌握中点画圆生成算法;3.掌握Bresenham画圆算法。二、实验内容利用VisualC++6.0设计一个简易画圆绘图板,验证圆生成算法。三、实验指导1.生成绘图应用程序的框架,如下图所示。具体实现见第二次实验,过程不再详细说明。2.在应用程序中增加菜单完成相关菜单的设计,具体的效果如下图所示,并设置好相关菜单消息的映射,具体的实现在前面的实验中介绍过,再此不在详细说明。3.在绘图函数中添加代码通过以上步骤,得到了与菜单对应的消息映射,就可以在函数中添加代码绘制图形了。(1)利用中点画圆算法实现圆的生成(算法原理见教材)。voidCDraw_CirView::OnMid(){//TODO:AddyourcommandhandlercodehereCDC*pDC=GetDC();//得到绘图类指针RedrawWindow();//重绘窗口intx,y,x0=200,y0=200,r=100;//圆的圆心为(x0,y0),半径为rfloatd;x=0;y=r;d=1.25-r;pDC->SetPixel(x+x0,y+y0,RGB(255,0,0));pDC->Set

文库****坚白
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf