实验一基本图形的绘制

实验一基本图形的绘制

ID:41628776

大小:132.40 KB

页数:11页

时间:2019-08-29

实验一基本图形的绘制_第1页
实验一基本图形的绘制_第2页
实验一基本图形的绘制_第3页
实验一基本图形的绘制_第4页
实验一基本图形的绘制_第5页
资源描述:

《实验一基本图形的绘制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2、中点画线法算法分析如图所示,如果当丽点是P,则下一个点可能实验一基本图形的绘制一、算法分析1、DDA算法分析将每个像索点看作平面处标系内网格交点,画直线吋,是将最靠近直线的像素点显示出來。对于一条起点是A(100,300),终点是B(300,400)的直线,可以先求得斜率k=(400-300)/(300-100)=0.5o当横坐标x从300开始每增加1时,纵坐标y=k(x+l)+b=kx+k+b,即纵坐标增加k。由于k=0.5

2、t()仅实现向下取整,当y的小数部分不足0.5时,int(y+0.5)的结果是y的整数部分,当y的小数部分人于0.5时,int(y+0.5)的结果是对y向上取整的结果。对于k〉1的情况,则需要将纵坐标y作为for循

3、环的计数器。y每增加1,横坐标x增加1/k,并对x作四舍五入的取整操作。P2--一―是P1或P2。理想直线与线段P1P2必然相交,设线段p=(盘孑I厂

4、P1P2之间的中点是Q,当Q位于理想直线的上方时,就取P1为下一个点;而当Q位于理想直线的下方时,就取P2为下一个点。如何判断Q与直线的位置关系,可将Q的处

5、标代入直线方程,当F(M)>0町判断M在直线上方,反Z,如果F(M)<0可判断M在直线下方。但这个原理在程序中并不是直接将M的坐标代入直线方程来判断下一点的位置的,而是采用增量计算的方法,具体实现方法如下:设直线方程为F(x,y)=ax+by+c,当前点为P(x“,y〃),要判断下一点P,(xp;yp,)的位置,先将中点Q的朋标代入直线方程F(xp+1,刃+0.5)=a(xp+l)+b(y“+0.5)+c=axp+byp+c+a+0.5b=F(xp,y”)+a+0.5b,设这个式了为d,即d=F(x“+l,y“+0.5

6、)=F(x〃,y〃)+a+0.5b。如果d>0,可得P啲坐标为(xp+l,yQ,则与P,相邻的下一点P”(x〃”,y〃”)的判定式为d'=F(xp+2,yp+0.5)=a(x〃+2)+b(y〃+0.5)+c=a(x“+l)+b(yp+0.5)+c+a=F(x“+l,y“+0.5)+a=d+a;反之,若d<0,P'的坐标为(xp+l,yp+l),则与P'相邻的下一点P"(xp”,yp”)的判定式为cT=F(x”+2,yp+1.5)=a(X0+2)+b(y〃+1.5)+c=a(xp+l)+b(y0+O.5)+c+a+b=F

7、(x“+l,y“+0.5)+a+b=d+a+b……,依此类推,以后各点位置的判定式都是在前一点的判定式d上叠加a或a+b。而d的初始值为a+0.5b,为避免小数运算可将上述等式两端都乘以2,于是判定式变为在初始值2d上叠加2(a+b)o3、Bresenham算法分析过齐行齐列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列彖素屮与此交点最近的象素。设直线方程为yi+1=yi+k(xi+1w)=yi+k其中k=dy/dxo因为直线的起始点在象索中心,所以误差项

8、d的初值d0=0。XF标每增加1,d的值相应递增直线的斜率值k,BPd=d+ko一旦dNl,就把它减去1,这样保证<1在0、1之间。当00.5时,最接近于当前象素的右上方象素区+1,yi+1)而当d<0・5时,更接近于右方象素(x汁1,Yi)o为方便计算,令e=d-0.5,e的初值为-0.5,增量为k°当Q0时,取当前象素(xi,%)的右上方象素(x汁ly+1);而当e<0时,4、中点画圆法构造函数:FFFF更接近于右方象素(百+1,Yi)o(X,(X,(X,(X,Y)Y)Y)Y)=X2+Y2-R2;=0<0>0(X,

9、Y)(X,Y)(X,Y)则在圆上;在圆内;在圆外。设M为Pl、P2间的中点,M=(Xp+l,Yp・0.5)d=F(M)=F(xp+1,yp-0.5)=(xp+l)2+(yp-0.5)2-R2若d<0,则Pl为下一个象素,那么再下一个象素的判别式为:d1=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3即d的增量为2xp+3.若d>=0,则P2为下一个象索,那么再下一个彖索的判别式为:dl=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+(2xp+3)+(

10、-2yp+2)即d的增量为2(xp-yp)+5.第一个象素是(0,R),因此d的初1[:dO=F(l,R-0.5)=1+(R-0.5)2-R2=1.25-R2利用圆的八对称性,只要扫描转换八分之一圆弧,就可以求出整个圆弧的象素集。5、Bresenham画圆法如图屮点PM是已选屮的一个表示圆弧上的点,根据弧AB的走向,下一•个点应该

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

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

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