用PHP以一定角度绘制一个矩形

时间:2011-09-17 19:42:25

标签: php gd draw

我想用PHP绘制一个角度的矩形。我知道您可以使用imagefilledrectangle使用PHP绘制矩形,但是如何绘制角度。

public function drawshelf($x1, $y1, $x2, $y2, $width, $angle = 'false'){
    imagesetthickness ( $this->canvas, 1 );
    for ($i=0; $i < $width; $i++){ //HORIZONTAL
        imageline( $this->canvas, $x1, $y1, $x2, $y2, $this->color );
        $y1++; $y2++;
        if( $angle == 'true' ){ $x1--; $x2--; }
    }
}

我写了这个函数来使用直线和循环绘制它,但它不像红色框那样正确。

有人可以告诉我,我做错了什么?你甚至可以这样画出来吗?

enter image description here

2 个答案:

答案 0 :(得分:6)

使用imagepolygon()imagefilledpolygon()使用GD绘制非矩形形状。您可能需要查看一些三角函数来确定如何定位点以获得直角角。

答案 1 :(得分:1)

我建议您使用内置的imagerotate以及使用imagefilledrectangle创建的矩形。

这是一个例子,创建一个旋转30度的20x100红色矩形:

$width = 20;
$height = 100;
$angle = 30;
$im = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

// Draw a red rectangle
imagefilledrectangle($im, 0, 0, $width, $height, $red);
// Rotate and fill out background with white
$im = imagerotate($im, $angle, $white);