计算机图形学学习

2.中点画线法

2017-08-06  本文已影响4人  clihen

中点画线法采用直线的一般式来描绘直线。

这条直线将平面区域的点分为三个部分,直线上方的点,直线下方的点以及直线上的点

对于直线上方的点,F(x,y) >0;

直线下方的点, F(x,y) <0;

直线上的点 ,F(x,y) = 0.

中点画线法思想:每次在最大位移方向上走一步,而另一个方向是走步还是不走步需要取决中点误差项的判断。

假定: 0<= | k | <= 1,每次在x轴方向上加1,y方向上加1还是不变需要判断。

理想直线,当前点绘制为P(xi , yi),则下一点要么是Pu,要么是Pd,假设直线与 x = xi  +1 这条直线相交于Q点,

则   当Q点在M点上方时,Q点离Pu更近,下一点取Pu

当Q点在M点下方时,Q点离Pd点更近,下一点取Pd

当Q = M时,则取Pu 或者 Pd都可以。。

如何判断M点在Q的上方还是下方??

因此将M点代入直线方程,

所求结果若是小于0,M在Q即直线的下方,取Pu,

若是大于0,M在Q上方,取Pd ,

等于0,取Pu或者Pd都可以。

当d<0,取Pu时,下一个中点M1的情况:

当 d >= 0时,取Pd,下一个中点M1的情况:

又因为d只关心符号,所以可以用2d来代替d来拜托浮点运算。写出仅包含整数运算的算法。

上一篇下一篇

猜你喜欢

热点阅读