function pBarcode39::draw in Visitors 7.2
Same name and namespace in other branches
- 7 pChart/class/pBarcode39.class.php \pBarcode39::draw()
File
- pChart/
class/ pBarcode39.class.php, line 108
Class
Code
function draw($Object, $Value, $X, $Y, $Format = "") {
$this->pChartObject = $Object;
$R = isset($Format["R"]) ? $Format["R"] : 0;
$G = isset($Format["G"]) ? $Format["G"] : 0;
$B = isset($Format["B"]) ? $Format["B"] : 0;
$Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
$Height = isset($Format["Height"]) ? $Format["Height"] : 30;
$Angle = isset($Format["Angle"]) ? $Format["Angle"] : 0;
$ShowLegend = isset($Format["ShowLegend"]) ? $Format["ShowLegend"] : FALSE;
$LegendOffset = isset($Format["LegendOffset"]) ? $Format["LegendOffset"] : 5;
$DrawArea = isset($Format["DrawArea"]) ? $Format["DrawArea"] : FALSE;
$AreaR = isset($Format["AreaR"]) ? $Format["AreaR"] : 255;
$AreaG = isset($Format["AreaG"]) ? $Format["AreaG"] : 255;
$AreaB = isset($Format["AreaB"]) ? $Format["AreaB"] : 255;
$AreaBorderR = isset($Format["AreaBorderR"]) ? $Format["AreaBorderR"] : $AreaR;
$AreaBorderG = isset($Format["AreaBorderG"]) ? $Format["AreaBorderG"] : $AreaG;
$AreaBorderB = isset($Format["AreaBorderB"]) ? $Format["AreaBorderB"] : $AreaB;
$TextString = $this
->encode39($Value);
if ($DrawArea) {
$X1 = $X + cos(($Angle - 135) * PI / 180) * 10;
$Y1 = $Y + sin(($Angle - 135) * PI / 180) * 10;
$X2 = $X1 + cos($Angle * PI / 180) * (strlen($this->Result) + 20);
$Y2 = $Y1 + sin($Angle * PI / 180) * (strlen($this->Result) + 20);
if ($ShowLegend) {
$X3 = $X2 + cos(($Angle + 90) * PI / 180) * ($Height + $LegendOffset + $this->pChartObject->FontSize + 10);
$Y3 = $Y2 + sin(($Angle + 90) * PI / 180) * ($Height + $LegendOffset + $this->pChartObject->FontSize + 10);
}
else {
$X3 = $X2 + cos(($Angle + 90) * PI / 180) * ($Height + 20);
$Y3 = $Y2 + sin(($Angle + 90) * PI / 180) * ($Height + 20);
}
$X4 = $X3 + cos(($Angle + 180) * PI / 180) * (strlen($this->Result) + 20);
$Y4 = $Y3 + sin(($Angle + 180) * PI / 180) * (strlen($this->Result) + 20);
$Polygon = array(
$X1,
$Y1,
$X2,
$Y2,
$X3,
$Y3,
$X4,
$Y4,
);
$Settings = array(
"R" => $AreaR,
"G" => $AreaG,
"B" => $AreaB,
"BorderR" => $AreaBorderR,
"BorderG" => $AreaBorderG,
"BorderB" => $AreaBorderB,
);
$this->pChartObject
->drawPolygon($Polygon, $Settings);
}
for ($i = 1; $i <= strlen($this->Result); $i++) {
if ($this
->mid($this->Result, $i, 1) == 1) {
$X1 = $X + cos($Angle * PI / 180) * $i;
$Y1 = $Y + sin($Angle * PI / 180) * $i;
$X2 = $X1 + cos(($Angle + 90) * PI / 180) * $Height;
$Y2 = $Y1 + sin(($Angle + 90) * PI / 180) * $Height;
$Settings = array(
"R" => $R,
"G" => $G,
"B" => $B,
"Alpha" => $Alpha,
);
$this->pChartObject
->drawLine($X1, $Y1, $X2, $Y2, $Settings);
}
}
if ($ShowLegend) {
$X1 = $X + cos($Angle * PI / 180) * (strlen($this->Result) / 2);
$Y1 = $Y + sin($Angle * PI / 180) * (strlen($this->Result) / 2);
$LegendX = $X1 + cos(($Angle + 90) * PI / 180) * ($Height + $LegendOffset);
$LegendY = $Y1 + sin(($Angle + 90) * PI / 180) * ($Height + $LegendOffset);
$Settings = array(
"R" => $R,
"G" => $G,
"B" => $B,
"Alpha" => $Alpha,
"Angle" => -$Angle,
"Align" => TEXT_ALIGN_TOPMIDDLE,
);
$this->pChartObject
->drawText($LegendX, $LegendY, $TextString, $Settings);
}
}