从C中的方块-GD库中绘制圆形

时间:2016-03-14 16:07:13

标签: c computer-science

我在这个项目上遇到了一些麻烦,我应该使用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)。到目前为止,我对一切感到满意。我可以让它编译加上创建刚刚粘在圆圈上的图像。

0 个答案:

没有答案