diff --git a/tinyrender/main.cpp b/tinyrender/main.cpp index 55d0e70..e1aceb4 100644 --- a/tinyrender/main.cpp +++ b/tinyrender/main.cpp @@ -26,13 +26,14 @@ void line(int x0, int y0, int x1, int y1, TGAImage& image, TGAColor color) { { if (steep) { - image.set(x, y, color); + image.set(y, x, color); } else { image.set(x, y, color); } error2 += derror2; + if (error2 > dx) // 误差值,提供从当前位置到最佳直线的距离 { y += (y1 > y0 ? 1 : -1); @@ -44,7 +45,13 @@ void line(int x0, int y0, int x1, int y1, TGAImage& image, TGAColor color) { int main(int argc, char** argv) { TGAImage image(100, 100, TGAImage::RGB); - line(52, 41,90,70,image ,red); + for (int i = 0; i < 1000000; i++) + { + line(13, 20, 80, 40, image, white); + line(20, 13, 40, 80, image, red); + line(80, 40, 13, 20, image, red); + } + image.flip_vertically(); // i want to have the origin at the left bottom corner of the image image.write_tga_file("output.tga"); return 0;