#include <stdio.h> #include <stdlib.h> #include <string.h> #include <gd.h> // color values // #define BLACK 0 #define GRAY 1 #define VIOLET 2 #define INDIGO 3 #define BLUE 4 #define GREEN 5 #define YELLOW 6 #define ORANGE 7 #define RED 8 #define WHITE 9 #define DARKGREEN 10 int main(int argc, char **argv) { FILE *out; // output file pointer char *outfile; // output file name gdImagePtr img; // GD Image Construct gdPoint points[3]; // Points for a Polygon unsigned int color[11]; // color array unsigned short int wide, high, // useful image and x, y; // coordinate variables if (argc == 2) { outfile = *(argv+1); } else { outfile = (char *) malloc (sizeof(char) * 10); strcpy(outfile, "image.png"); } fprintf(stdout, "Using '%s' as output filename\n", outfile); wide = 800; high = 600; img = gdImageCreateTrueColor(wide, high); // My GD color definitions // color[BLACK] = gdImageColorAllocate(img, 0, 0, 0); color[BLUE] = gdImageColorAllocate(img, 0, 0, 255); color[GREEN] = gdImageColorAllocate(img, 0, 255, 0); color[DARKGREEN] = gdImageColorAllocate(img, 51, 107, 0); color[RED] = gdImageColorAllocate(img, 255, 0, 0); color[GRAY] = gdImageColorAllocate(img, 204, 204, 204); color[WHITE] = gdImageColorAllocate(img, 255, 255, 255); /* Draw a triangle. */ points[0x00].x = (wide / 2); points[0x00].y = 0; points[0x01].x = wide; points[0x01].y = high; points[0x02].x = 0; points[0x02].y = high; /* Paint it in white */ gdImageFilledPolygon(img, points, 3, color[GREEN]); /* Outline it in red; must be done second */ gdImagePolygon(img, points, 3, color[RED]); // Output the data // out = fopen(outfile, "wb"); gdImagePngEx(img, out, -1); // Close things up // fclose(out); gdImageDestroy(img); return(0); }
If we made another gdPoint array (points2), what would that following code produce a likeness of?
points2[0x00].x = (wide / 2); points2[0x00].y = (high / 2) - 100; points2[0x01].x = (wide / 2) + 200; points2[0x01].y = (high / 2) + 100; points2[0x02].x = (wide / 2) - 200; points2[0x02].y = (high / 2) + 0; points2[0x03].x = (wide / 2) + 200; points2[0x03].y = (high / 2) + 0; points2[0x04].x = (wide / 2) - 200; points2[0x04].y = (high / 2) + 100; points2[0x05].x = (wide / 2) + 0; points2[0x05].y = (high / 2) - 100;