如何在PHP中绘制这种类型的图像

如何在PHP中绘制这种类型的图像,php,gd,Php,Gd,我想用PHP绘制一个图像,它看起来像下图中的圆圈- 我应该如何继续?是否有任何可用的PHP插件或东西,我可以用来生成这种类型的图像,或者我应该使用GD库和手工编码它自己 编辑 我正在寻找一些开源的库。我不知道您试图在该图像中显示什么,但它看起来像某种图形,所以在再次编码之前,我会寻找一个图表库,例如JpGraph: 我不知道您试图在该图像中显示什么,但它看起来像某种图形,因此在再次编码之前,我会查找一个图表库,例如JpGraph: 不要自己手工编码,那样会很痛苦。我曾经不得不编写一个饼图生成器

我想用PHP绘制一个图像,它看起来像下图中的圆圈-


我应该如何继续?是否有任何可用的PHP插件或东西,我可以用来生成这种类型的图像,或者我应该使用GD库和手工编码它自己

编辑
我正在寻找一些开源的库。

我不知道您试图在该图像中显示什么,但它看起来像某种图形,所以在再次编码之前,我会寻找一个图表库,例如JpGraph:


我不知道您试图在该图像中显示什么,但它看起来像某种图形,因此在再次编码之前,我会查找一个图表库,例如JpGraph:


不要自己手工编码,那样会很痛苦。我曾经不得不编写一个饼图生成器

有很多图形引擎:


  • 看看他们给你提供了什么。可能不完全相同,但非常接近。

    不要自己手工编码,否则会非常痛苦。我曾经不得不编写一个饼图生成器

    有很多图形引擎:


  • 看看他们给你提供了什么。可能不完全相同,但非常接近。

    您可能正在寻找SVG库


    也是一个不错的选择

    您可能正在寻找SVG库


    也是一个不错的选择

    这看起来像是一个转换为极坐标的条形图

    以下是生成此类图片的简单方法:

    • 绘制条形图(使用图表库或自己绘制),不留任何间隙 在酒吧间。确保您的栏的左右两侧没有空格

    • 使用GD的
      gdImageSquareToCircle()
      函数将图像转换为极坐标


    在转换图像之前,您可能需要将条形图旋转180°(即,条形图应该从上到下生长)。

    这看起来像是转换为极坐标的条形图

    以下是生成此类图片的简单方法:

    • 绘制条形图(使用图表库或自己绘制),不留任何间隙 在酒吧间。确保您的栏的左右两侧没有空格

    • 使用GD的
      gdImageSquareToCircle()
      函数将图像转换为极坐标

    在转换图像之前,您可能必须将条形旋转180°(即条形应从上到下生长)。

    是您的朋友是你的朋友此:

    $im = imagecreatetruecolor(500, 500);
    imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));
    
    
    imagefilledarc($im, 250, 250, 500, 500, -90, -80, 0xFF0000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400, -80, -40, 0xFFFF00, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, -40,  0,  0xFF00FF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 450, 450,   0,  20, 0x00FFFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 350, 350,  20, 50,  0x1276A9, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 100, 100,  50, 95,  0x000000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400,  95, 125, 0x1E1FFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, 125, 160, 0x45ABAB, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 500, 500, 160, 180, 0xFFA7F1, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 180, 235, 0xA91234, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 240, 240, 235, 255, 0xA13ACE, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 255, 270, 0x00FF00, IMG_ARC_PIE);
    
    header("Content-type: image/png");
    imagepng($im);
    
    这样做:

    $im = imagecreatetruecolor(500, 500);
    imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));
    
    
    imagefilledarc($im, 250, 250, 500, 500, -90, -80, 0xFF0000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400, -80, -40, 0xFFFF00, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, -40,  0,  0xFF00FF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 450, 450,   0,  20, 0x00FFFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 350, 350,  20, 50,  0x1276A9, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 100, 100,  50, 95,  0x000000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400,  95, 125, 0x1E1FFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, 125, 160, 0x45ABAB, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 500, 500, 160, 180, 0xFFA7F1, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 180, 235, 0xA91234, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 240, 240, 235, 255, 0xA13ACE, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 255, 270, 0x00FF00, IMG_ARC_PIE);
    
    header("Content-type: image/png");
    imagepng($im);
    
    这个:

    $im = imagecreatetruecolor(500, 500);
    imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));
    
    
    imagefilledarc($im, 250, 250, 500, 500, -90, -80, 0xFF0000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400, -80, -40, 0xFFFF00, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, -40,  0,  0xFF00FF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 450, 450,   0,  20, 0x00FFFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 350, 350,  20, 50,  0x1276A9, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 100, 100,  50, 95,  0x000000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400,  95, 125, 0x1E1FFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, 125, 160, 0x45ABAB, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 500, 500, 160, 180, 0xFFA7F1, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 180, 235, 0xA91234, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 240, 240, 235, 255, 0xA13ACE, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 255, 270, 0x00FF00, IMG_ARC_PIE);
    
    header("Content-type: image/png");
    imagepng($im);
    
    这样做:

    $im = imagecreatetruecolor(500, 500);
    imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));
    
    
    imagefilledarc($im, 250, 250, 500, 500, -90, -80, 0xFF0000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400, -80, -40, 0xFFFF00, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, -40,  0,  0xFF00FF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 450, 450,   0,  20, 0x00FFFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 350, 350,  20, 50,  0x1276A9, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 100, 100,  50, 95,  0x000000, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 400, 400,  95, 125, 0x1E1FFF, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 150, 150, 125, 160, 0x45ABAB, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 500, 500, 160, 180, 0xFFA7F1, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 180, 235, 0xA91234, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 240, 240, 235, 255, 0xA13ACE, IMG_ARC_PIE);
    imagefilledarc($im, 250, 250, 300, 300, 255, 270, 0x00FF00, IMG_ARC_PIE);
    
    header("Content-type: image/png");
    imagepng($im);
    

    它不是PHP。可能是Javascript,jQuery。可能不是PHP,但它是服务器端脚本,而不是Javascript。图表是通过服务器的GET请求创建的,它不是PHP。可能是Javascript,jQuery。可能不是PHP,但它是服务器端脚本,而不是Javascript。该图表是通过服务器的GET请求创建的。尽管raphael非常好,但它需要JavaScript和支持SVG的浏览器(与IE一样,它非常滞后)。尽管raphael非常好,但它需要JavaScript和支持SVG的浏览器(与IE一样,它非常滞后)。