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

时间:2015-10-21 16:16:49

标签: php loops for-loop imagick

test 3D ball

我正在使用PHP-Imagick并尝试创建一个看起来像三维对象的圆圈,例如。一个球。以上是我想要实现的一个粗略的例子。下面给出的是迄今为止我所得到的粗略尝试。

crude attempt

以下是生成上图的代码。我需要帮助来解决图像中的两个明显错误。首先,从高亮区域突出另一个圆圈。其次,在圆圈的左边,渐变非常糟糕。

$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;

我意识到代码是不可扩展的固定值和一切,但这是我能做的最好的。请帮我纠正。

0 个答案:

没有答案