C
C
C
*注:不能使用浮点运算。
A = (x1, y1) B = (x2, y2)
C=B-A=(x2 - x1, y2 - y1) = (xc, yc) C2 = C . C = xc2 + yc2 (x2-x1) )如果你不能使用浮点运算,那么你可能需要使用楼层划分。 你可以像这样进行四舍五入。y(x) = y1 + floor( ( 2(x-x1)(y2-y1) + (x2-x1) ) 2(x2-x1))Bresenham算法的全部要点是以增量方式计算这个公式,以避免乘法和除法,当时的乘法和除法比现在通常要贵得多。注:我假设你想要一个沿x或y的距离,因为你想要夹线。 如果你真的想要一个欧几里得距离,那么请看@Beta的回答