电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

图形学实验二VIP免费

图形学实验二_第1页
图形学实验二_第2页
图形学实验二_第3页
实验二用DDA算法、中点画线法和Bresenham算法绘制直线[实验目的]:掌握DDA算法、中点画线法和Bresenham算法的原理,在VC++6.0下设计实现DDA算法、中点算法和Bresenham算法绘制直线;[实验内容]:1.利用SetPixel函数编程实现DDA画线法SetPixel是CDC类的成员函数,用来绘制像素点颜色类属:CDC::SetPixel原型:COLORREFSetPixel(inx,inty,COLORREFcrColor)参数说明:SetPixel函数中,COLORREF是32位颜色数据类型;第1和第2个参数x,y是像素点位置的逻辑坐标值,第三个参数crColor是像素点的颜色值,COLORREF型变量可以用RGB(bRed,bGreen,bBlue)来指定相应的颜色值,每种颜色用1B长度表示,可以被设定为0~255.DDA画线法步骤一:建立MFCAppWizard(exe)工程,命名为DDALine步骤二:选择SingleDocment按钮,其余保持默认值,单击Finish按钮结束。步骤三:设计一个对话框类,用于输入直线起点终点坐标1.在资源视图ResourceView中选择Dialog,右击选择InsertDialog,在对话框中添加静态文本StaticText和编辑框EditBox控件并修改属性。2.双击对话框弹出AddingaClass,保持默认值添加一个新类Creatanewclass,单击OK。在弹出的对话框类中填写对话框类名InputDlg,单击确定。3.对对话框类进行设计,在View菜单下选择MFCClassWizard菜单项,选中MemberVariables标签页。修改成员变量的名称和类型。添加IDC_EDIT1的成员变量名m_1,类型为double,代表起点坐标中的x0;类似地依次添加m_2,m_3,m_4。步骤三:添加工具条按钮,修改其ID号为ID_MENUDDALine。步骤四:为工具条按钮ID_MENUDDALine增加对应的功能。从主菜单View中打开类向导ClassWizard。在Classname中选择CDDALineView,在ObjectIDs中选择ID_MENUDDALine,在Messages中选择Command,点击AddFunction,自动生成对应函数OnMENUDDALine步骤五:在DDALineView.h和DDALineView.cpp中添加相应代码1.在DDALineView.h中添加以下代码添加对话框头文件:#include"InputDlg.h"在类CDDALineView中声明无参公有成员函数DDALine()public:voidDDALine();和保护数据成员x0,y0,x1,y1,用于传递直线的起点和终点坐标protected:doublex0,y0,x1,y1;2.在DDALineView.cpp中添加成员函数DDALine()voidCDDALineView::DDALine(){CClientDCdc(this);//显示器客户区设备上下文类COLORREFrgb=RGB(0,0,255);//定义直线颜色为蓝色//DDA算法doublex,y,k;x=x0;y=y0,k=(y1-y0)/(x1-x0);for(x=x0;x<=x1;x++){dc.SetPixel(int(x+0.5),int(y+0.5),rgb);y=y+k;}}说明:CClientDC类:显示器客户区设备上下文类。它是设备上下文基类CDC的派生类,其构造函数调用GetDC函数,析构函数调用ReleaseDC函数。构造函数的作用是创建对象时对数据成员进行初始化,析构函数的作用是撤销对象时清理对象占用的内存空间。3.在DDALineView.cpp中为成员函数OnMENUDDALine()添加以下代码voidCDDALineView::OnMENUDDALine(){//TODO:AddyourcommandhandlercodehereInputDlgdlg;if(dlg.DoModal()==IDOK){x0=dlg.m_1;y0=dlg.m_2;x1=dlg.m_3;y1=dlg.m_4;}AfxGetMainWnd()->SetWindowText("案例:直线DDA算法");RedrawWindow();DDALine();}2.中点算法和bresenham算法可以类似实现

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

文章天下的最新文档

高中英语 Unit 2 Travelling around Section Ⅶ Reading for Writing——有关旅行计划的电子邮件学案 新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
21下载
高中英语 Unit 2 Travelling around Section Ⅵ The Rest Parts of the Unit(P30~34)学案 新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
16下载
高中英语 Unit 2 Travelling around Section Ⅴ Writing—有关旅游的电子邮件学案 新人教版必修1-新人教版高一必修1英语学案
¥3.00元
15下载
高中英语 Unit 2 Travelling around Section Ⅴ Writing教学案 新人教版必修第一册-新人教版高一第一册英语教学案
¥3.00元
14下载
高中英语 Unit 2 Travelling around Section Ⅴ Listening and Talking学案 新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
4下载
高中英语 UNIT 2 TRAVELLING AROUND Section Ⅳ单元要点复习学案(含解析)新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
27下载
高中英语 Unit 2 Travelling around Section Ⅳ Reading for Writing教学案 新人教版必修第一册-新人教版高一第一册英语教学案
¥3.00元
29下载
高中英语 Unit 2 Travelling around Section Ⅳ Listening and Talking Reading for Writing学案 新人教版必修1-新人教版高一必修1英语学案
¥3.00元
21下载
高中英语 Unit 2 Travelling around Section Ⅳ Discovering Useful Structures——现在进行时表将来学案 新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
6下载
高中英语 Unit 2 Travelling around Section Ⅲ Reading and Thinking(2)学案 新人教版必修第一册-新人教版高一第一册英语学案
¥3.00元
11下载
文章天下+ 关注
实名认证
内容提供者

各种文档应有尽有

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部