图形学实验指导书.doc

图形学实验指导书.doc

ID:51862434

大小:102.52 KB

页数:12页

时间:2020-03-17

图形学实验指导书.doc_第1页
图形学实验指导书.doc_第2页
图形学实验指导书.doc_第3页
图形学实验指导书.doc_第4页
图形学实验指导书.doc_第5页
资源描述:

《图形学实验指导书.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、图形学实验指导书  实验一DDADA画线算法  一、实验学时2  二、实验类型验证性实验  三、实验要求和目的初步了解Tc下画图基本程序结构。  初步了解DDA画线算法的思想和基本方法。  四、实验内容DDA画线算法画一段直线1.算法思路1.算法描述设直线方程为bmxy??,1221121212,xxyxyxbxxyym??????对于直线,其数值微分是)()1()()1(ixixiyiyxym????????,由上式得,y(i+1)=y(i)+m(x(i+1)-x(i)),于是知,使x(i)增1,即x(i+1)=x(i)+1时,y(i+1)=y(i)+m,为画线精确

2、,应使相邻的画出点的坐标值相差最大值为1,这样可以得到画线段的数值微分分析器(DigitalDifferentialAnalyzer,简称DDA),算法如下2.C程序代码#include#include#includevoidDDALine(intx1,inty1,intx2,inty2,intcolor){doubledx,dy,e,x,y,i;dx=x2-x1;dy=y2-y1;e=(fabs(dx)>fabs(dy))?fabs(dx):fabs(dy);dx/=e;dy/=e;x=x1;y=y1;for(i=1;i<=e;i++){putpixel((int)

3、(x+0.5),(int)(y+0.5),color);x+=dx;y+=dy;}}voidmain(){intdriver=DETECT;intgmode;intx1,y1,x2,y2,color;printf("pleaseinputx1,y1,y1,y2,color");scanf("%d,%d,%d,%d,%d",&x1,&y1,&x2,&y2,&color);initgraph(&driver,&gmode,"");DDALine(x1,y1,x2,y2,color);getch();closegraph();}实验二mBresenham画线算法  一、

4、实验学时2  二、实验类型验证性实验  三、实验要求和目的掌握中点画线算法的思想和基本方法  四、实验内容用用Bresenham画线算法画直线,并完善算法功能,使之适应更广1.算法思路假定直线段的斜率0≤m≤1,且x2>x1,122)1  (2)1()1()1()1(2121????????????????????byxmddbxmyyydybxmyydiiiiiiii????????若差为正,即21dd?,下一个象素应取)1,1(++iiyx??;若为负,即21dd?,下一个象素应取),1(iiyx??+。  引入新的判别量picyxxybyxxxyyxddxpii

5、iii??????????????????????22)]122)1(2[)(121221其中)12(2;;1212??????????bxycyyxx,又因为11???iixx??,所以有)(211iiiiyxypp?????????0?ip应取11+iiyy????,此时)(21xyppii??????pi<0,应取iiyy????1,此时ypii????21初始值的确定bxyyxxxyii??????111,??xycbxxxypxy?????????????2)(221112.C程序代码#include#include#includevoidBresenham

6、Line(intx1,inty1,intx2,inty2,intcolor){intx,y,dx,dy,p;x=x1;y=y1;dx=x2-x1;dy=y2-y1;p=2*dy-dx;for(x=1;x<=x2;x++){putpixel(x,y,color);if(p>=0){y++;p+=2*(dy-dx);}else{p+=2*dy;}}}voidmain(){intdriver=DETECT;intgmode;intx1,y1,x2,y2,color;printf("pleaseinputx1,y1,x2,y2,color");scanf("%d,%d,%d,

7、%d,%d",&x1,&y1,&x2,&y2,&color);initgraph(&driver,&gmode,"");BresenhamLine(x1,y1,x2,y2,color);getch();closegraph();}实验三中点画圆算法  一、实验学时2  二、实验类型验证性实验  三、实验要求和目的掌握中点画圆算法的基本思想编写中点画圆的基本函数并尽量完善  四、实验内容中点画圆算法画圆1.算法描述构造函数222),(RyxyxF???对于圆上的点,有F(x,y)=0;对于圆外的点,有F(x,y)>0;对于圆内的点,有F(x,y)<0。

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

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

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