From 0eb822094b76937961a5f73ab203b02f5470d8a8 Mon Sep 17 00:00:00 2001 From: Ole Morud Date: Mon, 6 Jun 2022 22:52:54 +0200 Subject: [PATCH] refactor --- graphics.c | 66 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/graphics.c b/graphics.c index 1f6240e..df95d35 100644 --- a/graphics.c +++ b/graphics.c @@ -1,4 +1,6 @@ - +#include +#include +#include #include #define uint unsigned int @@ -11,6 +13,34 @@ typedef struct Canvas { char* data; } Canvas; + + +// DECLARATIONS +void render(Canvas* c); +void line(Canvas* c, uint start_x, uint start_y, uint end_x, uint end_y); +void dot(Canvas* c, uint x, uint y); + + +/* + * main + */ +int main(){ + Canvas a = {40, 40, malloc(40*40)}; + memset(a.data, OFF, a.x * a.y); + + //line(&a, 1, 1, 8, 8); + //line(&a, 8, 8, 1, 1); + //line(&a, 0, 5, 8, 8); + line(&a, 8, 8, 0, 5); + + + render(&a); + + return 0; +} + + + /* * Draws an x*y rectangle with the characters in canvas* c */ @@ -33,7 +63,6 @@ void dot(Canvas* c, uint x, uint y){ c->data[ y*(c->x) + x] = ON; } - /* * Draws a line from (start_x, start_y) to (end_x, end_y) */ @@ -42,8 +71,6 @@ void line(Canvas* c, uint start_x, uint start_y, uint end_x, uint end_y){ int dy = end_y - start_y; if (dx<0) dx *= -1; if (dy<0) dy *= -1; - dx++; - dy++; if((dx>=dy && start_x>end_x) || ( dxend_y)){ int temp; @@ -64,41 +91,16 @@ void line(Canvas* c, uint start_x, uint start_y, uint end_x, uint end_y){ float small = direction_y * (float)dy/(float)dx; for(int i=0; i