本文整理汇总了PHP中Gradient::FilledFlatPolygon方法的典型用法代码示例。如果您正苦于以下问题:PHP Gradient::FilledFlatPolygon方法的具体用法?PHP Gradient::FilledFlatPolygon怎么用?PHP Gradient::FilledFlatPolygon使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gradient
的用法示例。
在下文中一共展示了Gradient::FilledFlatPolygon方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Stroke
function Stroke(&$img, &$xscale, &$yscale)
{
$numpoints = count($this->coords[0]);
if (isset($this->coords[1])) {
if (count($this->coords[1]) != $numpoints) {
JpGraphError::Raise("Number of X and Y points are not equal. Number of X-points:" . count($this->coords[1]) . " Number of Y-points:{$numpoints}");
} else {
$exist_x = true;
}
} else {
$exist_x = false;
}
if ($this->barcenter) {
$textadj = 0.5 - $xscale->text_scale_off;
} else {
$textadj = 0;
}
// Find the first numeric data point
$startpoint = 0;
while ($startpoint < $numpoints && !is_numeric($this->coords[0][$startpoint])) {
++$startpoint;
}
// Bail out if no data points
if ($startpoint == $numpoints) {
return;
}
if ($exist_x) {
$xs = $this->coords[1][$startpoint];
} else {
$xs = $textadj + $startpoint;
}
$img->SetStartPoint($xscale->Translate($xs), $yscale->Translate($this->coords[0][$startpoint]));
if ($this->filled) {
$cord[] = $xscale->Translate($xs);
$min = $yscale->GetMinVal();
if ($min > 0 || $this->fillFromMin) {
$cord[] = $yscale->Translate($min);
} else {
$cord[] = $yscale->Translate(0);
}
}
$xt = $xscale->Translate($xs);
$yt = $yscale->Translate($this->coords[0][$startpoint]);
$cord[] = $xt;
$cord[] = $yt;
$yt_old = $yt;
$this->value->Stroke($img, $this->coords[0][$startpoint], $xt, $yt);
$img->SetColor($this->color);
$img->SetLineWeight($this->weight);
$img->SetLineStyle($this->line_style);
for ($pnts = $startpoint + 1; $pnts < $numpoints; ++$pnts) {
if ($exist_x) {
$x = $this->coords[1][$pnts];
} else {
$x = $pnts + $textadj;
}
$xt = $xscale->Translate($x);
$yt = $yscale->Translate($this->coords[0][$pnts]);
$y = $this->coords[0][$pnts];
if ($this->step_style && is_numeric($y)) {
$img->StyleLineTo($xt, $yt_old);
$img->StyleLineTo($xt, $yt);
$cord[] = $xt;
$cord[] = $yt_old;
$cord[] = $xt;
$cord[] = $yt;
} else {
if (is_numeric($y) || is_string($y) && $y != "-") {
$tmp1 = $this->coords[0][$pnts];
$tmp2 = $this->coords[0][$pnts - 1];
if (is_numeric($tmp1) && (is_numeric($tmp2) || $tmp2 == "-")) {
$img->StyleLineTo($xt, $yt);
} else {
$img->SetStartPoint($xt, $yt);
}
if (is_numeric($tmp1) && (is_numeric($tmp2) || $tmp2 == "-" || $this->filled && $tmp2 == '')) {
$cord[] = $xt;
$cord[] = $yt;
}
}
}
$yt_old = $yt;
$this->StrokeDataValue($img, $this->coords[0][$pnts], $xt, $yt);
}
if ($this->filled) {
$cord[] = $xt;
if ($min > 0 || $this->fillFromMin) {
$cord[] = $yscale->Translate($min);
} else {
$cord[] = $yscale->Translate(0);
}
if ($this->fillgrad) {
$img->SetLineWeight(1);
$grad = new Gradient($img);
$grad->SetNumColors($this->fillgrad_numcolors);
$grad->FilledFlatPolygon($cord, $this->fillgrad_fromcolor, $this->fillgrad_tocolor);
$img->SetLineWeight($this->weight);
} else {
$img->SetColor($this->fill_color);
$img->FilledPolygon($cord);
//.........这里部分代码省略.........
示例2: Stroke
//.........这里部分代码省略.........
} elseif ($prev === 'x') {
$cord[$idx++] = $xt;
$cord[$idx++] = $fillmin;
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
} else {
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
}
} else {
if (is_numeric($tmp1) && (is_numeric($prev) || $prev === '-')) {
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
}
}
}
$yt_old = $yt;
$xt_old = $xt;
$y_old = $y;
$this->StrokeDataValue($img, $this->coords[0][$pnts], $xt, $yt);
++$pnts;
}
if ($this->filled) {
$cord[$idx++] = $xt;
if ($min > 0 || $this->fillFromMin) {
$cord[$idx++] = $yscale->Translate($min);
} else {
$cord[$idx++] = $yscale->Translate(0);
}
if ($this->fillgrad) {
$img->SetLineWeight(1);
$grad = new Gradient($img);
$grad->SetNumColors($this->fillgrad_numcolors);
$grad->FilledFlatPolygon($cord, $this->fillgrad_fromcolor, $this->fillgrad_tocolor);
$img->SetLineWeight($this->weight);
} else {
$img->SetColor($this->fill_color);
$img->FilledPolygon($cord);
}
if ($this->line_weight > 0) {
$img->SetColor($this->color);
$img->Polygon($cord);
}
}
if (!empty($this->filledAreas)) {
$minY = $yscale->Translate($yscale->GetMinVal());
$factor = $this->step_style ? 4 : 2;
for ($i = 0; $i < sizeof($this->filledAreas); ++$i) {
// go through all filled area elements ordered by insertion
// fill polygon array
$areaCoords[] = $cord[$this->filledAreas[$i][0] * $factor];
$areaCoords[] = $minY;
$areaCoords = array_merge($areaCoords, array_slice($cord, $this->filledAreas[$i][0] * $factor, ($this->filledAreas[$i][1] - $this->filledAreas[$i][0] + ($this->step_style ? 0 : 1)) * $factor));
$areaCoords[] = $areaCoords[sizeof($areaCoords) - 2];
// last x
$areaCoords[] = $minY;
// last y
if ($this->filledAreas[$i][3]) {
$img->SetColor($this->filledAreas[$i][2]);
$img->FilledPolygon($areaCoords);
$img->SetColor($this->color);
}
// Check if we should draw the frame.
// If not we still re-draw the line since it might have been
// partially overwritten by the filled area and it doesn't look
// very good.
示例3: Stroke
//.........这里部分代码省略.........
if ($tmp1 === 'x') {
$cord[$idx++] = $cord[$idx - 3];
$cord[$idx++] = $fillmin;
} elseif ($prev === 'x') {
$cord[$idx++] = $xt;
$cord[$idx++] = $fillmin;
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
} else {
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
}
} else {
if (is_numeric($tmp1) && (is_numeric($prev) || $prev === '-')) {
$cord[$idx++] = $xt;
$cord[$idx++] = $yt;
}
}
}
$yt_old = $yt;
$xt_old = $xt;
$y_old = $y;
$this->StrokeDataValue($img, $this->coords[0][$pnts], $xt, $yt);
++$pnts;
}
if ($this->filled) {
$cord[$idx++] = $xt;
if ($min > 0 || $this->fillFromMin) {
$cord[$idx++] = $yscale->Translate($min);
} else {
$cord[$idx++] = $yscale->Translate(0);
}
if ($this->fillgrad) {
$img->SetLineWeight(1);
$grad = new Gradient($img);
$grad->SetNumColors($this->fillgrad_numcolors);
$grad->FilledFlatPolygon($cord, $this->fillgrad_fromcolor, $this->fillgrad_tocolor);
$img->SetLineWeight($this->weight);
} else {
$img->SetColor($this->fill_color);
$img->FilledPolygon($cord);
}
if ($this->line_weight > 0) {
$img->SetColor($this->color);
$img->Polygon($cord);
}
}
if (!empty($this->filledAreas)) {
$minY = $yscale->Translate($yscale->GetMinVal());
$factor = $this->step_style ? 4 : 2;
for ($i = 0; $i < sizeof($this->filledAreas); ++$i) {
$areaCoords[] = $cord[$this->filledAreas[$i][0] * $factor];
$areaCoords[] = $minY;
$areaCoords = array_merge($areaCoords, array_slice($cord, $this->filledAreas[$i][0] * $factor, ($this->filledAreas[$i][1] - $this->filledAreas[$i][0] + ($this->step_style ? 0 : 1)) * $factor));
$areaCoords[] = $areaCoords[sizeof($areaCoords) - 2];
$areaCoords[] = $minY;
if ($this->filledAreas[$i][3]) {
$img->SetColor($this->filledAreas[$i][2]);
$img->FilledPolygon($areaCoords);
$img->SetColor($this->color);
}
if ($this->filledAreas[$i][4]) {
$img->Polygon($areaCoords);
} else {
$img->Polygon($cord);
}
$areaCoords = array();
}
}
if ($this->mark->type == -1 || $this->mark->show == false) {
return;
}
for ($pnts = 0; $pnts < $numpoints; ++$pnts) {
if ($exist_x) {
$x = $this->coords[1][$pnts];
} else {
$x = $pnts + $textadj;
}
$xt = $xscale->Translate($x);
$yt = $yscale->Translate($this->coords[0][$pnts]);
if (is_numeric($this->coords[0][$pnts])) {
if (!empty($this->csimtargets[$pnts])) {
if (!empty($this->csimwintargets[$pnts])) {
$this->mark->SetCSIMTarget($this->csimtargets[$pnts], $this->csimwintargets[$pnts]);
} else {
$this->mark->SetCSIMTarget($this->csimtargets[$pnts]);
}
$this->mark->SetCSIMAlt($this->csimalts[$pnts]);
}
if ($exist_x) {
$x = $this->coords[1][$pnts];
} else {
$x = $pnts;
}
$this->mark->SetCSIMAltVal($this->coords[0][$pnts], $x);
$this->mark->Stroke($img, $xt, $yt);
$this->csimareas .= $this->mark->GetCSIMAreas();
}
}
}