diff --git a/include/libdraw.h b/include/libdraw.h index c25f14e5ec5c8fd233e48d4d0ea612edf68d74bf..34253813ac5f93011ed8a18c8856fa2667bf7344 100644 --- a/include/libdraw.h +++ b/include/libdraw.h @@ -27,10 +27,9 @@ BEGIN_C_DECLS */ void libhqr_writeheader(FILE *tree); -void libhqr_writecss(); void libhqr_writeend(FILE *tree); -void libhqr_drawTT(int x, int y, int w, int h, FILE *tree); -void libhqr_drawTS(int x, int y, int w, int h, FILE *tree); +void libhqr_drawTT(int x, int y, int w, int h, int k, FILE *tree); +void libhqr_drawTS(int x, int y, int w, int h, int k, FILE *tree); void libhqr_drawline(int x1, int y1, int x2, int y2, FILE *tree); END_C_DECLS diff --git a/src/treedraw.c b/src/treedraw.c index 63362ef46c2c458fc3d8e5f6a0c3e3a05503d6b5..2fd52ff22112b0c2c6edc7739a8844c8a63e68c9 100644 --- a/src/treedraw.c +++ b/src/treedraw.c @@ -28,14 +28,42 @@ void libhqr_writeheader(FILE *tree){ if(fprintf(tree, "<svg width=\"2000\" height=\"2000\" version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\">\n") <0) return; } -void libhqr_writecss(); - -void libhqr_drawTT(int x, int y, int w, int h, FILE *tree){ - if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return; +void libhqr_drawTT(int x, int y, int w, int h, int k, FILE *tree){ + switch (k % 4){ + case 0 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return; + break; + case 1 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"blue\" /> \n", x, y, w, h) < 0 ) return; + break; + case 2 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"green\" /> \n", x, y, w, h) < 0 ) return; + break; + case 3 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"black\" /> \n", x, y, w, h) < 0 ) return; + break; + default: + return; + } } -void libhqr_drawTS(int x, int y, int w, int h, FILE *tree){ - if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill =\"red\" /> \n", x, y, w, h) < 0 ) return; +void libhqr_drawTS(int x, int y, int w, int h, int k, FILE *tree){ + switch (k % 4){ + case 0 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"red\" /> \n", x, y, w, h) < 0 ) return; + break; + case 1 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"blue\" /> \n", x, y, w, h) < 0 ) return; + break; + case 2 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"green\" /> \n", x, y, w, h) < 0 ) return; + break; + case 3 : + if(fprintf(tree,"<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"black\" /> \n", x, y, w, h) < 0 ) return; + break; + default: + return; + } int x2 = x + (w / 4); int y2 = y + (h / 4); int w2 = (w / 2); @@ -44,7 +72,7 @@ void libhqr_drawTS(int x, int y, int w, int h, FILE *tree){ } void libhqr_drawline(int x1, int y1, int x2, int y2, FILE *tree){ - if(fprintf(tree,"<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" /> \n", x1, y1, x2, y2) < 0 ) return; + if(fprintf(tree,"<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" style=\"fill:none;stroke:black;stroke-width:2px;\"/> \n", x1, y1, x2, y2) < 0 ) return; } void libhqr_writeend(FILE *tree){ diff --git a/testings/testing_treedraw.c b/testings/testing_treedraw.c index f3cff63243ed277b8a49f840473205a3ed247c1f..f2fdd7b8e48e28f43d85061991f5510ecf40f5bf 100644 --- a/testings/testing_treedraw.c +++ b/testings/testing_treedraw.c @@ -19,20 +19,21 @@ #include <string.h> #include "libdraw.h" +#define WIDTH 50 +#define HEIGHT 50 + int main(int argc, char ** argv) { FILE *tree = fopen("tree.svg","w+"); - int x,y,w,h,i,j; - w = 50; - h = 50; + int x,y,i,j; libhqr_writeheader(tree); + libhqr_drawline(125,100,125,800,tree); for (i = 1; i < 5; i++){ for (j = 1; j < 9; j++){ x = 100*i; y = 100*j; - libhqr_drawline(x,y,w,h,tree); - libhqr_drawTS(x,y,w,h,tree); + libhqr_drawTS(x,y,WIDTH,HEIGHT,1,tree); } } libhqr_writeend(tree);