本文整理汇总了PHP中ImagickDraw::pathClose方法的典型用法代码示例。如果您正苦于以下问题:PHP ImagickDraw::pathClose方法的具体用法?PHP ImagickDraw::pathClose怎么用?PHP ImagickDraw::pathClose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImagickDraw
的用法示例。
在下文中一共展示了ImagickDraw::pathClose方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fmod
function renderImage3()
{
//dupe of two ?
$draw = new \ImagickDraw();
$strokeColor = new \ImagickPixel($this->strokeColor);
$fillColor = new \ImagickPixel($this->fillColor);
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];
$points = 11;
$size = 150;
$draw->translate(175, 160);
for ($x = 0; $x < 2; $x++) {
//$pointsArray = array();
$draw->setFillRule($fillRules[$x]);
$draw->pathStart();
for ($n = 0; $n < $points * 2; $n++) {
if ($n >= $points) {
$angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
} else {
$angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
}
$positionX = $size * sin($angle);
$positionY = $size * cos($angle);
if ($n == 0) {
$draw->pathMoveToAbsolute($positionX, $positionY);
} else {
$draw->pathLineToAbsolute($positionX, $positionY);
}
}
$draw->pathClose();
$draw->pathFinish();
$draw->translate(325, 0);
}
//Create an image object which the draw commands can be rendered into
$image = new \Imagick();
//$image->newImage(700, 320, $this->backgroundColor);
$image->newImage(700, 320, "#eee");
$image->setImageFormat("png");
//Render the draw commands in the ImagickDraw object
//into the image.
$image->drawImage($draw);
//Send the image to the browser
header("Content-Type: image/png");
echo $image->getImageBlob();
}
示例2: test_path
function test_path(&$canvas)
{
$draw = new ImagickDraw();
$draw->setFillColor('transparent');
$draw->setStrokeColor('blue');
$draw->setStrokeWidth(4);
$draw->pathStart();
$draw->pathMoveToAbsolute(300, 10);
$draw->pathLineToHorizontalRelative(50);
$draw->pathLineToVerticalRelative(50);
$draw->pathEllipticArcRelative(40, 30, 30, false, true, 60, 10);
$draw->pathLineToAbsolute(444, 22);
$draw->pathFinish();
$draw->pathStart();
$draw->pathMoveToAbsolute(480, 30);
$draw->pathCurveToAbsolute(520, 40, 560, 10, 600, 20);
$draw->pathCurveToQuadraticBezierRelative(30, 10, -60, 80);
$draw->pathCurveToQuadraticBezierSmoothRelative(20, -50);
$draw->pathClose();
$draw->pathFinish();
$canvas->drawImage($draw);
}
示例3: drawBezierChart
function drawBezierChart($points, $roundness)
{
//Calculate the tangent vector for each point that you're drawing.
$tangents = $this->getPointTangents($points);
$positions = $this->getPointPositions($points);
$numberOfPoints = count($points);
$this->draw->setFillColor('#B42AAF9F');
$this->draw->translate($this->chartWidth / 2, $this->chartHeight / 2);
$this->draw->pathStart();
$this->draw->pathMoveToAbsolute($positions[0][0], $positions[0][1]);
//Scale that by the 'value' of each point aka the distance from the chart's centre.
//Also scale it by how rounded you want the chart.
for ($i = 0; $i < $numberOfPoints; $i++) {
list($nextPositionX, $nextPositionY) = $positions[($i + 1) % $numberOfPoints];
list($controlPoint1X, $controlPoint1Y) = $this->getControlPoint($points[$i], $positions[$i], $tangents[$i], 1, $roundness, count($points));
list($controlPoint2X, $controlPoint2Y) = $this->getControlPoint($points[($i + 1) % $numberOfPoints], $positions[($i + 1) % $numberOfPoints], $tangents[($i + 1) % $numberOfPoints], -1, $roundness, count($points));
$this->draw->pathCurveToAbsolute($controlPoint1X, $controlPoint1Y, $controlPoint2X, $controlPoint2Y, $nextPositionX, $nextPositionY);
}
$this->draw->pathClose();
$this->draw->pathFinish();
foreach ($this->points as $point) {
$this->draw->circle($point[0], $point[1], $point[2], $point[3]);
}
}
示例4: setFillRule
function setFillRule($fillColor, $strokeColor, $backgroundColor)
{
$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];
$points = 11;
$size = 150;
$draw->translate(175, 160);
for ($x = 0; $x < 2; $x++) {
$draw->setFillRule($fillRules[$x]);
$draw->pathStart();
for ($n = 0; $n < $points * 2; $n++) {
if ($n >= $points) {
$angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
} else {
$angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
}
$positionX = $size * sin($angle);
$positionY = $size * cos($angle);
if ($n == 0) {
$draw->pathMoveToAbsolute($positionX, $positionY);
} else {
$draw->pathLineToAbsolute($positionX, $positionY);
}
}
$draw->pathClose();
$draw->pathFinish();
$draw->translate(325, 0);
}
$image = new \Imagick();
$image->newImage(700, 320, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);
header("Content-Type: image/png");
echo $image->getImageBlob();
}