Алгоритм Брезенхема

Я пытаюсь нарисовать линию в 2D между двумя точками. У меня есть следущий алгоритм:

Steep = 0
    if(abs(X0-X1)<abs(Y0-Y1)) {
        TempA = Y0
        Y0 = X0
        X0 = TempA

        TempB = Y1
        Y1 = X1
        X1 = TempB
        
        Steep = 1
    }
    if(X0>X1) {
        TempA = X0
        X0 = X1
        X1 = TempA

        TempB = Y0
        Y0 = Y1
        Y1 = TempB
    }
    for(TempX=X0,X1) {
        T = (TempX-X0)/(X1-X0)
        TempY = ceil(Y0*(abs(1-T)) + Y1*T)
        if(Steep) {
            Draw[TempX*Res+TempY,vector] = C
        }else{
            Draw[TempY*Res+TempX,vector] = C
        }
    }

Он работает, но криво и из-за этого линии иногда не отрисовываются если расположить точки по другому. Помогите мне найти ошибку, заранее спасибо!

(p.s. не пытайтесь определить яп на котором написан код, пожалуйста.)


Ответы (1 шт):

Автор решения: L1ckt0r

Ответ найден. Формулу другую использовать нужно.

→ Ссылка