本文整理汇总了PHP中Canvas::line方法的典型用法代码示例。如果您正苦于以下问题:PHP Canvas::line方法的具体用法?PHP Canvas::line怎么用?PHP Canvas::line使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Canvas
的用法示例。
在下文中一共展示了Canvas::line方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _border_dashed
protected function _border_dashed($x, $y, $length, $color, $widths, $side, $corner_style = "bevel")
{
list($top, $right, $bottom, $left) = $widths;
$pattern = $this->_get_dash_pattern("dashed", $$side);
switch ($side) {
case "top":
$delta = $top / 2;
case "bottom":
$delta = isset($delta) ? $delta : -$bottom / 2;
$this->_canvas->line($x, $y + $delta, $x + $length, $y + $delta, $color, $$side, $pattern);
break;
case "left":
$delta = $left / 2;
case "right":
$delta = isset($delta) ? $delta : -$right / 2;
$this->_canvas->line($x + $delta, $y, $x + $delta, $y + $length, $color, $$side, $pattern);
break;
default:
return;
}
}
示例2: _border_line
protected function _border_line($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $pattern_name, $r11 = 0, $r12 = 0, $r21 = 0, $r22)
{
// TODO: What is $corner_style for ?
list($top, $right, $bottom, $left) = $widths;
$width = ${$side};
$pattern = $this->_get_dash_pattern($pattern_name, $width);
$half_width = $width / 2;
$r11 -= $half_width;
$r12 -= $half_width;
$r21 -= $half_width;
$r22 -= $half_width;
$length -= $width;
$outdraw = 0.5;
switch ($side) {
case "top":
$x += $half_width;
$y += $half_width;
if ($r11 and $r12) {
$this->_canvas->arc($x + $r12, $y + $r11, $r12, $r11, 90 - $outdraw, 135 + $outdraw, $color, $width, $pattern);
}
$this->_canvas->line($x + $r12, $y, $x + $length - $r21, $y, $color, $width, $pattern);
if ($r21 and $r22) {
$this->_canvas->arc($x + $length - $r21, $y + $r22, $r21, $r22, 45 - $outdraw, 90 + $outdraw, $color, $width, $pattern);
}
break;
case "bottom":
$x += $half_width;
$y -= $half_width;
if ($r21 and $r22) {
$this->_canvas->arc($x + $r21, $y - $r22, $r21, $r22, 225 - $outdraw, 270 + $outdraw, $color, $width, $pattern);
}
$this->_canvas->line($x + $r21, $y, $x + $length - $r12, $y, $color, $width, $pattern);
if ($r11 and $r12) {
$this->_canvas->arc($x + $length - $r12, $y - $r11, $r12, $r11, 270 - $outdraw, 315 + $outdraw, $color, $width, $pattern);
}
break;
case "left":
$y += $half_width;
$x += $half_width;
if ($r11 and $r12) {
$this->_canvas->arc($x + $r11, $y + $length - $r12, $r11, $r12, 180 - $outdraw, 225 + $outdraw, $color, $width, $pattern);
}
$this->_canvas->line($x, $y + $r21, $x, $y + $length - $r12, $color, $width, $pattern);
if ($r21 and $r22) {
$this->_canvas->arc($x + $r22, $y + $r21, $r22, $r21, 135 - $outdraw, 180 + $outdraw, $color, $width, $pattern);
}
break;
case "right":
$y += $half_width;
$x -= $half_width;
if ($r21 and $r22) {
$this->_canvas->arc($x - $r22, $y + $length - $r21, $r22, $r21, 315 - $outdraw, 360 + $outdraw, $color, $width, $pattern);
}
$this->_canvas->line($x, $y + $r12, $x, $y + $length - $r21, $color, $width, $pattern);
if ($r11 and $r12) {
$this->_canvas->arc($x - $r11, $y + $r12, $r11, $r12, 0 - $outdraw, 45 + $outdraw, $color, $width, $pattern);
}
break;
}
}
示例3: _border_line
protected function _border_line($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $pattern_name, $r1 = 0, $r2 = 0)
{
list($top, $right, $bottom, $left) = $widths;
$width = ${$side};
$pattern = $this->_get_dash_pattern($pattern_name, $width);
$half_width = $width / 2;
$r1 -= $half_width;
$r2 -= $half_width;
$adjust = $r1 / 80;
$length -= $width;
switch ($side) {
case "top":
$x += $half_width;
$y += $half_width;
if ($r1 > 0) {
$this->_canvas->arc($x + $r1, $y + $r1, $r1, $r1, 90 - $adjust, 135 + $adjust, $color, $width, $pattern);
}
$this->_canvas->line($x + $r1, $y, $x + $length - $r2, $y, $color, $width, $pattern);
if ($r2 > 0) {
$this->_canvas->arc($x + $length - $r2, $y + $r2, $r2, $r2, 45 - $adjust, 90 + $adjust, $color, $width, $pattern);
}
break;
case "bottom":
$x += $half_width;
$y -= $half_width;
if ($r1 > 0) {
$this->_canvas->arc($x + $r1, $y - $r1, $r1, $r1, 225 - $adjust, 270 + $adjust, $color, $width, $pattern);
}
$this->_canvas->line($x + $r1, $y, $x + $length - $r2, $y, $color, $width, $pattern);
if ($r2 > 0) {
$this->_canvas->arc($x + $length - $r2, $y - $r2, $r2, $r2, 270 - $adjust, 315 + $adjust, $color, $width, $pattern);
}
break;
case "left":
$y += $half_width;
$x += $half_width;
if ($r1 > 0) {
$this->_canvas->arc($x + $r1, $y + $r1, $r1, $r1, 135 - $adjust, 180 + $adjust, $color, $width, $pattern);
}
$this->_canvas->line($x, $y + $r1, $x, $y + $length - $r2, $color, $width, $pattern);
if ($r2 > 0) {
$this->_canvas->arc($x + $r2, $y + $length - $r2, $r2, $r2, 180 - $adjust, 225 + $adjust, $color, $width, $pattern);
}
break;
case "right":
$y += $half_width;
$x -= $half_width;
if ($r1 > 0) {
$this->_canvas->arc($x - $r1, $y + $r1, $r1, $r1, 0 - $adjust, 45 + $adjust, $color, $width, $pattern);
}
$this->_canvas->line($x, $y + $r1, $x, $y + $length - $r2, $color, $width, $pattern);
if ($r2 > 0) {
$this->_canvas->arc($x - $r2, $y + $length - $r2, $r2, $r2, 315 - $adjust, 360 + $adjust, $color, $width, $pattern);
}
break;
}
}
示例4: drawProfile
protected function drawProfile($profile, $width, $height)
{
$margint = 50;
$marginr = 50;
$marginb = 50;
$marginl = 50;
$last = end($profile);
$maxdist = $last[0];
$minalti = array(array(0, INF));
$maxalti = array(array(0, -INF));
foreach ($profile as $coords) {
$alti = $coords[1];
if ($alti == $minalti[0][1]) {
$minalti[] = array($coords[0], $alti);
} else {
if ($alti < $minalti[0][1]) {
$minalti = array(array($coords[0], $alti));
}
}
if ($alti == $maxalti[0][1]) {
$maxalti[] = array($coords[0], $alti);
} else {
if ($alti > $maxalti[0][1]) {
$maxalti = array(array($coords[0], $alti));
}
}
}
$canvas = new Canvas($width, $height, $margint, $marginr, $marginb, $marginl);
$canvas->setViewBox(0, $minalti[0][1], $maxdist, $maxalti[0][1]);
$canvas->rect(0, 0, $width, $height, "FFFFFF");
$slopecolor = function ($slope) {
if ($slope > 18) {
return "FF0000";
// red
} else {
if ($slope > 12) {
return "FF4000";
} else {
if ($slope > 7) {
return "FF8000";
} else {
if ($slope > 3) {
return "FFC000";
} else {
if ($slope > 0) {
return "FFFF00";
// yellow
} else {
if ($slope > -3) {
return "00FFFF";
} else {
if ($slope > -7) {
return "00C0FF";
} else {
if ($slope > -12) {
return "0080FF";
} else {
if ($slope > -18) {
return "0040FF";
} else {
return "0000FF";
// blue;
}
}
}
}
}
}
}
}
}
};
$canvas->setThickness(2);
$prev = null;
foreach ($profile as $coord) {
if (!is_null($prev)) {
$dist = $coord[0];
$alti = $coord[1];
$prevdist = $prev[0];
$prevalti = $prev[1];
$slope = 100 * ($alti - $prevalti) / ($dist - $prevdist);
$canvas->line($canvas->canvasXPos($prevdist), $canvas->canvasYPos($prevalti), $canvas->canvasXPos($dist), $canvas->canvasYPos($alti), $slopecolor($slope), true);
}
$prev = $coord;
}
$canvas->setThickness(1);
$canvas->setFont(APPLICATION_PATH . '/resources/' . 'DejaVuSans.ttf', 10);
list($minx, $miny, $maxx, $maxy) = $canvas->getViewBox();
$deltax = pow(10, floor(log10($maxx - $minx)));
foreach (range($minx, $maxx, $deltax) as $x) {
$canvas->line($canvas->canvasXPos($x), $height - $marginb + 10, $canvas->canvasXPos($x), $height - $marginb, "000000");
if ($deltax < 1000) {
$text = $x . "m";
} else {
$text = round($x / 1000) . "km";
}
$canvas->text($canvas->canvasXPos($x), $height - $marginb + 10 + 3, $text, "000000", "cb");
}
$canvas->line($marginl, $height - $marginb, $width - $marginr, $height - $marginb, "000000");
$deltay = pow(10, floor(log10($maxy - $miny)));
//.........这里部分代码省略.........