资源描述:
《在vc 6.0中实现直线的扫描转换算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、宁夏师范学院数学与计算机科学学院《计算机图形学》实验报告实验序号:2实验项目名称:直线的扫描转换学号2014210677姓名王艳艳专业、班级14计本一班实验地点文科楼206指导教师罗晓丽时间2017.3.17一、实验目的:学会使用MFC,能够运用直线的三种扫描算法即数值微分算法(DDA算法)、中点画线算法和Bresenham画线算法绘制直线,并熟悉掌握制作过程。二、实验环境:Windows7VC++6.0三、实验内容:打开vc6.0,点击新建—>工程—>MFCAppWizard[exe],创建项目名称(随便写),确
2、定位置,然后点击确定。选择创建的应用类型—>单文档—>完成。点击确定。DDA算法:添加成员函数:1.展开Wangyanyanclasses—>右击WangyanyanView—>选择AddMemberFuntion(添加成员函数)—>函数类型定义为void,函数描述为:DDAline—>点击确定2.展开Wangyanyanclasses—>CWangyanyanView—>在DDAline()函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWangy
3、anyanView,在public中添加代码:voidCWangyanyanjView::DDAline(intx0,inty0,intx1,inty1,intcolor,CClientDC&dc);记住最后加分号4.展开CWangyanyan—>双击OnDraw—>添加代码:CClientDCdc(this);DDAline(8,12,20,20,RGB(255,145,200),dc);5.双击DDAline,在函数体内编写如下代码:voidCDWangyanyanView::DDAline(intx0,int
4、y0,intx1,inty1,intcolor,CClientDC&dc){CPennewpen(PS_SOLID,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.展开Wangyanyanclasses—>右击CWangyanyanVie
5、w—>选择AddMemberFuntion(添加成员函数)—>函数类型定义为void,函数描述为:MidpointLine—>点击确定2.展开classes—>CWangyanyanview,在MidpointLine函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWangyanyanView,在public中添加代码:voidCWangyanyanView::MidpointLine(intx0,inty0,intx1,inty1,intcolor
6、,CClientDC&dc);最后加分号4.展开CWangyanyanView—>双击OnDraw—>添加代码:MidpointLine(20,15,200,485,RGB(80,120,255),dc);5.双击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+
7、b);x=x0;y=y0;dc.SetPixel(x,y,color);while(x右击CWangyanyanView—>选择AddMemberFuntion,函数类型定义为void,函数描述为:Bresenham_Line—>点击确定2.点击classes—>C
8、Wangyanyanview,在Bresenham_Line函数里添加形参intx0,inty0,intx1,inty1,intcolor,CClientDC&dc3.双击CWangyanyanView,在public中添加代码:voidCWangyanyanView::Bresenham_Line(intx0,inty0,intx1,inty1,intco