#include #include #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define BLACK 4 unsigned char pallete[5][3]={{255,255,255},{255,0,0},{0,255,0},{0,0,255},{0,0,0}}; //convert from pallete number to RGB values void output_pixel(FILE *fp, unsigned char pixel) { fprintf(fp,"%d %d %d\n",pallete[pixel][0],pallete[pixel][1],pallete[pixel][2]); } void writePPM3(char *filename, unsigned char *buffer, unsigned int xsize, unsigned int ysize) { FILE *fp = fopen(filename, "w"); if (fp == NULL) { fprintf(stderr, "Could not open '%s' for writing\n", filename); return; } printf("writing file\n"); fprintf(fp, "P3\n"); fprintf(fp, "%d %d\n", xsize, ysize); fprintf(fp, "255\n"); for(unsigned int i=0;i=half) return true; else return false; } bool dashed_horiz(int amount) { return dashed(x,amount); } bool dashed_vert(int amount) { return dashed(y,amount); } bool corner_test(int a, int b) { if(x>=a-3 && x<=a+2 && y>=b-3 && y<=b+2) return true; else return false; } void generate_subbox(char *filename, unsigned int xsize,unsigned int ysize) { printf("generating subbox to file: %s\n",filename); unsigned char *buffer=(unsigned char *)malloc(xsize*ysize*sizeof(unsigned char)); if(buffer==NULL) { printf("no memory!\n"); return; } x_center=xsize/2; y_center=ysize/2; l_edge=18; h_edge=xsize-18-1; for(y=0;y