我在考虑栅格化三角算法。(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);它绘制三角形,但填充超出界限。
问题出在哪里?