数值微分ODDA法 缺点:在此算法中,y、k必须是 float,且每 一步都必须对y进行舍入取整,不利于硬件实 现 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 数值微分(DDA)法 • 缺点: 在此算法中,y、k必须是float,且每 一步都必须对y进行舍入取整,不利于硬件实 现
中点画线法 原理: 假定直线斜率0<K<1,且已 P2 确定点亮象素点P(X,Y。), 则下一个与直线最接近的像 素只能是P1点或P2点。设M P=(XpL yp)IPI 为中点,Q为交点 现需确定下一个点亮的象素 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 中点画线法 • 原理: 假定直线斜率0<K<1,且已 确定点亮象素点P(Xp ,Yp ), 则下一个与直线最接近的像 素只能是P1点或P2点。设M 为中点,Q为交点 现需确定下一个点亮的象素。 P=(xp,yp) Q P2 P1
v中点画线法 当M在Q的下方→P2离直线更近更近→取P2 M在Q的上方→>P1离直线更近更近→取P1 M与Q重合,P1、P2任取一点。 P2 P=(xp yp)IPI 问题:如何判断M与Q点的关系? 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 中点画线法 – 当M在Q的下方-> P2离直线更近更近->取P2 。 – M在Q的上方-> P1离直线更近更近->取P1 – M与Q重合, P1、P2任取一点。 – 问题:如何判断M与Q点的关系? P=(xp,yp) Q P2 P1
中点画线法 假设直线方程为:ax+by+c=0 其中a=yy1b-x1x0,cxy-Xyo 由常识知: F(x,y)=0点在直线上面 P2 F(x,y)>0点在直线上方 F(x,y)<0点在直线下方 Xpl yp)IP1 欲判断M点是在Q点上方还是在Q点下方, 只需把M代入F(x3y),并检查它的符号 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 中点画线法 假设直线方程为:ax+by+c=0 其中a=y0 -y1 , b=x1 -x0 , c=x0y1 -x1y0 由常识知: ∴欲判断M点是在Q点上方还是在Q点下方, 只需把M代入F(x,y),并检查它的符号。 ( ) ( ) ( ) = 点在直线下方 点在直线上方 点在直线上面 , 0 , 0 , 0 F x y F x y F x y P=(xp,yp) Q P2 P1
中点画线法 构造判别式: d=F(M)产F(x+12yp+0.5 P2 =a(x+1)+b(y+0.5)+c 当d<0,M在直线(Q点)下 方,取右上方P2; (xph yp)IPl 当d>0,M在直线(Q点)上 方,取右方P1; 当d=0,选P或P均可, 约定取P1; 能否采用增量算法呢? 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 中点画线法 构造判别式: d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c 当d<0,M在直线(Q点)下 方,取右上方P2; 当d>0,M在直线(Q点)上 方,取右方P1; 当d=0,选P1或P2均可, 约定取P1; 能否采用增量算法呢? P=(xp,yp) Q P2 P1