PHP Imagick:创建具有三维效果的圆

PHP Imagick:创建具有三维效果的圆,php,loops,for-loop,imagick,Php,Loops,For Loop,Imagick,我正在使用PHP Imagick,并试图创建一个圆形,它将显示为一个三维对象,例如一个球。上面给出的是我试图实现的一个粗略的例子。下面给出的是我迄今为止所得到的一个粗略的尝试 下面是生成上面图像的代码。我需要帮助解决图像中的两个明显错误。首先,有另一个圆从高光区域突出。第二,在圆的左边梯度很差 $background = new Imagick(); $background->newImage(800,560,new ImagickPixel('#212121')); $orb = n

我正在使用PHP Imagick,并试图创建一个圆形,它将显示为一个三维对象,例如一个球。上面给出的是我试图实现的一个粗略的例子。下面给出的是我迄今为止所得到的一个粗略的尝试

下面是生成上面图像的代码。我需要帮助解决图像中的两个明显错误。首先,有另一个圆从高光区域突出。第二,在圆的左边梯度很差

$background = new Imagick();
$background->newImage(800,560,new ImagickPixel('#212121'));

$orb = new ImagickDraw();

for($i = 250; $i > 0; $i--){ //create the biggest circle first and then keep painting smaller circles over it.
    $orb->push();

    $blue = 350 - $i > 255 ? 255 : 350 - $i;
    $red    = 250 - $i; 
    $green  = 250 - $i;
    $color = 'rgba(' .$red. ',' .$green. ',' .$blue. ', 1)';
    $orb->setFillColor($color); 

    $orb->ellipse(  $i + 150 < 260 ? 260 : $i + 150,
                    $i + 30 < 210 ? 210 : $i + 30,
                    $i,
                    $i,
                    0, 360 );
    $orb->pop();
}

$background->drawImage($orb);
$background->setImageFormat( "png" ); // set the image format to png
header("Content-Type: image/png"); // Output the image 
echo $background;
$background=new Imagick();
$background->newImage(800560,新的ImagickPixel('212121');
$orb=新的ImagickDraw();
对于($i=250;$i>0;$i--){//首先创建最大的圆,然后继续在其上绘制较小的圆。
$orb->push();
$blue=350-$i>255?255:350-$i;
$red=250-$i;
$green=250-$i;
$color='rgba('.$red'.'和'.$green'.'和'.$blue'.1');
$orb->setFillColor($color);
$orb->椭圆($i+150<260?260:$i+150),
$i+30<210?210:$i+30,
$i,
$i,
0, 360 );
$orb->pop();
}
$background->drawImage($orb);
$background->setImageFormat(“png”);//将图像格式设置为png
标题(“内容类型:image/png”);//输出图像
回声背景;

我意识到代码是不可伸缩的,有固定的值和一切,但这是我能做的最好的。请帮我改正一下