填充三角形的算法

我在考虑栅格化三角算法。(triangle_rasterization_lesson)


我写了以下代码:


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);它绘制三角形,但填充超出界限。


问题出在哪里?


千巷猫影
浏览 923回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP