您所在位置: 网站首页 / 计算机图形学实验.docx / 文档详情
计算机图形学实验.docx 立即下载
2025-08-28
约1.5万字
约25页
0
24KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机图形学实验.docx

计算机图形学实验.docx

预览

免费试读已结束,剩余 20 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

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
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

计算机图形学实验

文档大小:24KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用