直线圆椭圆生成算法.ppt第三章直线、圆、椭圆、、嵌入式数值微分法(DDA)假定直线的起点、终点分别为:(x0,y0),(x1,y1),且都为整数。(Xi+1,Yi+k)(Xi,Int(Yi+))(Xi,Yi)栅格交点表示象素点位置。。。。资料整理自互联网欢迎访问片机、嵌入式数值微分(DDA)法基本思想已知过端点P0(x0,y0),P1(x1,y1)的直线段Ly=kx+b直线斜率为这种方法直观,但效率太低,因为每一步需要一次浮点乘法和一次舍入运算。资料整理自互联网欢迎访问片机、嵌入式数值微分(DDA)法计算yi+1=kxi+1+b =kxi+b+kx =yi+kx当x=1; yi+1=yi+k即:当x每递增1,y递增k(即直线斜率);注意上述分析的算法仅适用于k≤1的情形。在这种情况下,x每增加1,y最多增加1。当k1时,必须把x,y地位互换资料整理自互联网欢迎访问片机、嵌入式数值微分(DDA)法增量算法:在一个迭代算法中,如果每一步的x、y值是用前一步的值加上一个增量来获得,则称为增量算法。DDA算法就是一个增量算法。资料整理自互联网欢迎访问片机、嵌入式数值微分(DDA)法voidDDALine(intx0,inty0,intx1,inty1,intcolor)intx; floatdx,dy,y,k; dx=x1-x0;dy=y1-y0; k=dy/dx;y=y0; for(x=x0;xx1;x++) drawpixel(x,int(y+),color); y=y+k;资料整理自互联网欢迎访问片机、嵌入式数值微分(DDA)法例:画直线段P0(0,0)--P1(5,2)xint(y+) y+ 0 0+ 0 + 1 + 3 1 + 2 + 2 +、嵌入式数值微分(DDA)法缺点:在此算法中,y、k必须是float,且每一步都必须对y进行舍入取整,不利于硬件实现。资料整理自互联网欢迎访问片机、嵌入式中点画线法原理:假定直线斜率0<K<1,且已确定点亮象素点P(Xp,Yp),则下一个与直线最接近的像素只能是P1点或P2点。设M为中点,Q为交点现需确定下一个点亮的象素。资料整理自互联网欢迎访问片机、嵌入式
直线圆椭圆生成算法 来自淘豆网m.daumloan.com转载请标明出处.