本文整理汇总了PHP中ImagickDraw::pathCurveToAbsolute方法的典型用法代码示例。如果您正苦于以下问题:PHP ImagickDraw::pathCurveToAbsolute方法的具体用法?PHP ImagickDraw::pathCurveToAbsolute怎么用?PHP ImagickDraw::pathCurveToAbsolute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImagickDraw
的用法示例。
在下文中一共展示了ImagickDraw::pathCurveToAbsolute方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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);
}
示例2: 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]);
}
}
示例3: pathStart
function pathStart($strokeColor, $fillColor, $backgroundColor)
{
$draw = new \ImagickDraw();
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->pathStart();
$draw->pathMoveToAbsolute(50, 50);
$draw->pathLineToAbsolute(100, 50);
$draw->pathLineToRelative(0, 50);
$draw->pathLineToHorizontalRelative(-50);
$draw->pathFinish();
$draw->pathStart();
$draw->pathMoveToAbsolute(50, 50);
$draw->pathMoveToRelative(300, 0);
$draw->pathLineToRelative(50, 0);
$draw->pathLineToVerticalRelative(50);
$draw->pathLineToHorizontalAbsolute(350);
$draw->pathclose();
$draw->pathFinish();
$draw->pathStart();
$draw->pathMoveToAbsolute(50, 300);
$draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
$draw->pathLineToVerticalAbsolute(350);
$draw->pathFinish();
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}