我在这个项目上遇到了一些麻烦,我应该使用GD.h库来构建一个黑色背景的图像,并用正方形绘制一个圆圈。 我必须使用这个库来构建图像,我不允许使用除“gdImageRectangle”之外的任何其他函数来使圆形不在正方形中。 我的代码全部用于制作和导出图像,但在我的颜色数组之后,我无法弄清楚如何制作圆圈......所以gd.h上的任何提示/教程都会受到赞赏。我阅读了手册,但仍然无法完全理解。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gd.h>
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define RED 3
#define WHITE 4
int main(int argc, char **argv)
{
char *outfile; //name out of the output file
FILE *out; //output file pointer
gdImagePtr img; //GD Image Contruct
unsigned int color[5]; //color array
unsigned short int wide, high; //image attributes
if (argc == 2)
{
outfile = *(argv+6);
fprintf(stdout, "Using '%s' as output filename\n", outfile);
}
else
{
outfile = (char *) malloc (sizeof(char) * 64);
strcpy(outfile, "/home/snicho15/public_html/cos0.png");
}
//setting up image width and height for COS0
wide = 800;
high = 600;
//create new image with specified height and width
img = gdImageCreate(wide, high);
//GD COLOR
color[BLACK] = gdImageColorAllocate(img, 0x00, 0x00, 0x00);
color[BLUE] = gdImageColorAllocate(img, 0x00, 0x00, 0xFF);
color[GREEN] = gdImageColorAllocate(img, 0x00, 0xFF, 0x00);
color[RED] = gdImageColorAllocate(img, 0xFF, 0x00, 0x00);
color[WHITE] = gdImageColorAllocate(img, 0xFF, 0xFF, 0xFF);
//code goes down here
**where the circle out of squares code goes**
//open file
if((out = fopen(outfile, "wb")) == NULL)
{
fprintf(stderr, "Error opening '%s'\n", outfile);
exit(1);
}
//send image to file
gdImagePngEx(img, out, -1);
//close things up
fclose(out);
gdImageDestroy(img);
return (0);
}
主要是我唯一需要帮助的是如何从正方形中绘制圆圈。圆的中心x应该是0并且与中心y一起(应该是0)。到目前为止,我对一切感到满意。我可以让它编译加上创建刚刚粘在圆圈上的图像。