Алгоритм заполнения треугольника

Я имею в виду алгоритм треугольника растеризации. (triangle_rasterization_lesson )

Я wtote следующий код:

void triangle(int xa, int ya, int xb, int yb, int xc, int yc, TGAImage &image, TGAColor color)
{
    line(xa, ya, xb, yb, image, color);
    line(xa, ya, xc, yc, image, color);
    line(xb, yb, xc, yc, image, color);
    for (int x = xa; x<=xb; x++)
    {
        for (int y = ya; y<=yb; y++)
        {
            line(xc, yc, x, y, image, white);
        }
    }
}

Сtriangle(100, 100, 100, 400, 400, 100, image, red); это работает правильно. Но если я поменяю местами координаты X (xa, ya) и Z (xc, yc), чтобы не заполнить мой квадрат.

Сtriangle(70, 50, 200, 100, 20, 150, image, red); это рисует треугольник, но заполнениевыходит за пределы.

В чем проблема?

Ответы на вопрос(2)

Ваш ответ на вопрос