feat: add clearCanvas and rework on drawPixel

This commit is contained in:
2025-09-03 20:35:06 +02:00
parent c1f020ef1e
commit 2421b74a2e
2 changed files with 20 additions and 3 deletions

View File

@@ -24,9 +24,15 @@ void editCanvas(int width, int height)
static char drawPixel(float zBuffer) static char drawPixel(float zBuffer)
{ {
if (zBuffer < 0.25f) return '.'; float zb = (zBuffer + 1.f) * 0.5f;
else if (zBuffer < 0.5f) return '*';
else if (zBuffer < 0.75f) return 'o'; if (zb > 1.f) zb = 1.f;
if (zb < 0.f) zb = 0.f;
if (zb < 0.25f) return '.';
else if (zb < 0.5f) return '*';
else if (zb < 0.75f) return 'o';
else return '#'; else return '#';
} }
@@ -81,6 +87,16 @@ void renderCanvas(int width, int height)
} }
} }
void clearCanvas(int width, int height)
{
printf("\033[2J\033[H");
for (int i = 0; i<height; i++) {
for (int j = 0; j<width; j++) {
canvas[i*width + j] = ' ';
}
}
}
void freeCanvas(void) void freeCanvas(void)
{ {
free(canvas); free(canvas);

View File

@@ -8,6 +8,7 @@ void editCanvas(int width, int height);
void drawCanvas(Vec4f_t p, int width, int height); void drawCanvas(Vec4f_t p, int width, int height);
void drawLine(Vec4f_t p0, Vec4f_t p1, int width, int height); void drawLine(Vec4f_t p0, Vec4f_t p1, int width, int height);
void renderCanvas(int width, int height); void renderCanvas(int width, int height);
void clearCanvas(int width, int height);
void freeCanvas(void); void freeCanvas(void);
#endif // DRAW_H #endif // DRAW_H