直线的扫描转换.doc

直线的扫描转换.doc

ID:59460317

大小:425.00 KB

页数:13页

时间:2020-11-02

直线的扫描转换.doc_第1页
直线的扫描转换.doc_第2页
直线的扫描转换.doc_第3页
直线的扫描转换.doc_第4页
直线的扫描转换.doc_第5页
资源描述:

《直线的扫描转换.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、宁夏师范学院数学与计算机科学学院《计算机图形学》实验报告实验序号:2实验项目名称:直线的扫描转换学号姓名专业、班级实验地点指导教师时间2017-03-20一、实验目的:学会使用MFC,能够运用直线的三种扫描算法即数值微分算法(DDA算法)、中点画线算法和Bresenham画线算法绘制直线,并熟悉掌握制作过程。二、实验环境:Windows7VC++6.0三、实验内容:打开vc6.0,点击新建—>工程—>MFCAppWizard[exe],创建项目名称(随便写),确定位置,然后点击确定。选择创建的应用类型—

2、>单文档—>完成点击确定。DDA算法:添加成员函数:1.展开wdxclasses—>右击CWdxView—>选择AddMemberFuntion(添加成员函数)—>函数类型定义为void,函数描述为:DDAline—>点击确定2.展开wdxclasses—>CWdxView—>在DDAline()函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWdxView,在public中添加代码:voidCWdxView::DDAline(intx0

3、,inty0,intx1,inty1,intcolor,CClientDC&dc);记住最后加分号4.展开CWdxView—>双击OnDraw—>添加代码:CClientDCdc(this);DDAline(8,12,20,25,RGB(255,145,200),dc);5.双击DDAline,在函数体内编写如下代码:并调试程序voidCWdxView::DDAline(intx0,inty0,intx1,inty1,intcolor,CClientDC&dc){CPennewpen(PS_SOLID,

4、1,color);dc.SelectObject(&newpen);intx,dx,dy,y,k;dx=x1-x0;dy=y1-y0;k=dy/dx;y=y0;for(x=x0;x<=x1;x++){dc.SetPixel(x,int(y+0.5),color);y=y+k;}}运行结果:中点画线算法:添加成员函数1.展开wdxclasses—>右击CWdxView—>选择AddMemberFuntion(添加成员函数)—>函数类型定义为void,函数描述为:MidpointLine—>点击确定2.展开

5、classes—>CWdxview,在MidpointLine函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWdxView,在public中添加代码:voidCWdxView::MidpointLine(intx0,inty0,intx1,inty1,intcolor,CClientDC&dc);最后加分号4.展开CWdxView—>双击OnDraw—>添加代码:MidpointLine(20,15,259,485,RGB(80,120

6、,255),dc);双击MidpointLine,在函数体内编写如下代码:并调试程序CPennewpen(PS_SOLID,1,color);dc.SelectObject(&newpen);inta,b,delta1,delta2,d,x,y;a=y0-y1;b=x1-x0;d=2*a+b;delta1=2*a;delta2=2*(a+b);x=x0;y=y0;dc.SetPixel(x,y,color);while(x

7、d+=delta2;}dc.SetPixel(x,y,color);}运行结果:Bresenham算法:添加成员函数1.展开wdxclasses—>右击CWdxView—>选择AddMemberFuntion,函数类型定义为void,函数描述为:Bresenham_Line—>点击确定2.点击classes—>CWdxview,在Bresenham_Line函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWdxView,在public中添

8、加代码:voidCWdxView::Bresenham_Line(intx0,inty0,intx1,inty1,intcolor,CClientDC&dc);最后加分号4.展开CWdxView—>双击OnDraw—>添加代码:Bresenham_Line(65,12,600,450,RGB(20,180,250),dc);5.双击Bresenham_Line,在函数体内编写如下代码:并调试程序intx,y,dx,dy,e,i;dx=x1-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。