======Shapes in GD: Circle====== Even though GD has the ability to draw arcs, sometimes it is preferable to render them manually, in order to gain additional functionality. This example will do just that. =====code===== Please type this in, do not copy and paste, and ask questions along the way: ====Part 1==== #include #include #include #define PI 3.1415926535897 int main() { FILE *out; char outfile[] = "image.png"; gdImagePtr img; unsigned int current; unsigned short int wide, high; int degree, x, y, r = 0, red = 0, green = 0, blue = 0; float radian; wide = 800; high = 800; img = gdImageCreate(wide, high); current = gdImageColorAllocate(img, 0x00, 0x00, 0x00); gdImageFilledRectangle(img, 0, 0, wide, high, current); This sets us up and gets us a clean slate. ====Part 2==== This part will do the actual grunt work chugging out a circle (using units of squares): r = 200; green = 0xFF; for(degree = 0; degree < 360; degree++) { radian = degree * (PI / 180); x = (wide / 2) + r * sin(radian); y = (high / 2) + r * cos(radian); current = gdImageColorAllocate(img, 0, green, 0); gdImageFilledRectangle(img, x, y, x+20, y+20, current); } ====Part 3==== And close everything up nicely: // Output the data // out = fopen(outfile, "wb"); gdImagePngEx(img, out, -1); // Close things up // fclose(out); gdImageDestroy(img); return(0); } =====To compile===== Since we're using both the math and GD libraries, don't forget to link against them: lab46:~/src/gdstuff$ gcc -o circle circle.c -lm -lgd This will once again produce an image file that will have to be viewed using an appropriate program.