function pPie::writePieLabel
Search API
5.x pPie.class.php | pPie::writePieLabel($X, $Y, $Label, $Angle, $Settings, $Stacked, $Xc = 0, $Yc = 0, $Radius = 0, $Reversed = FALSE) |
4 calls to pPie::writePieLabel()
- pPie::draw2DPie in inc/
pchart/ pchart/ class/ pPie.class.php - pPie::draw2DRing in inc/
pchart/ pchart/ class/ pPie.class.php - pPie::draw3DPie in inc/
pchart/ pchart/ class/ pPie.class.php - pPie::draw3DRing in inc/
pchart/ pchart/ class/ pPie.class.php
File
- inc/
pchart/ pchart/ class/ pPie.class.php, line 799
Class
Code
function writePieLabel($X, $Y, $Label, $Angle, $Settings, $Stacked, $Xc = 0, $Yc = 0, $Radius = 0, $Reversed = FALSE)
{
$LabelOffset = 30;
$FontName = $this->pChartObject->FontName;
$FontSize = $this->pChartObject->FontSize;
if (!$Stacked)
{
$Settings ["Angle"] = 360 -$Angle;
$Settings ["Length"] = 25;
$Settings ["Size"] = 8;
$this->pChartObject->drawArrowLabel($X, $Y, " " . $Label . " ", $Settings);
}
else
{
$X2 = cos(deg2rad($Angle -90)) * 20 + $X;
$Y2 = sin(deg2rad($Angle -90)) * 20 + $Y;
$TxtPos = $this->pChartObject->getTextBox($X, $Y, $FontName, $FontSize, 0, $Label);
$Height = $TxtPos [0]["Y"] - $TxtPos [2]["Y"];
$YTop = $Y2 - $Height / 2 - 2;
$YBottom = $Y2 + $Height / 2 + 2;
if ($this->LabelPos != "")
{
$Done = FALSE;
foreach ($this->LabelPos as $Key => $Settings)
{
if (!$Done)
{
if ($Angle <= 90 && (($YTop >= $Settings ["YTop"] && $YTop <= $Settings ["YBottom"]) || ($YBottom >= $Settings ["YTop"] && $YBottom <= $Settings ["YBottom"])))
{
$this->shift(0, 180, -($Height + 2), $Reversed);
$Done = TRUE;
}
if ($Angle > 90 && $Angle <= 180 && (($YTop >= $Settings ["YTop"] && $YTop <= $Settings ["YBottom"]) || ($YBottom >= $Settings ["YTop"] && $YBottom <= $Settings ["YBottom"])))
{
$this->shift(0, 180, -($Height + 2), $Reversed);
$Done = TRUE;
}
if ($Angle > 180 && $Angle <= 270 && (($YTop >= $Settings ["YTop"] && $YTop <= $Settings ["YBottom"]) || ($YBottom >= $Settings ["YTop"] && $YBottom <= $Settings ["YBottom"])))
{
$this->shift(180, 360, ($Height + 2), $Reversed);
$Done = TRUE;
}
if ($Angle > 270 && $Angle <= 360 && (($YTop >= $Settings ["YTop"] && $YTop <= $Settings ["YBottom"]) || ($YBottom >= $Settings ["YTop"] && $YBottom <= $Settings ["YBottom"])))
{
$this->shift(180, 360, ($Height + 2), $Reversed);
$Done = TRUE;
}
}
}
}
$LabelSettings = array("YTop" => $YTop, "YBottom" => $YBottom, "Label" => $Label, "Angle" => $Angle, "X1" => $X, "Y1" => $Y, "X2" => $X2, "Y2" => $Y2);
if ($Angle <= 180) {
$LabelSettings ["X3"] = $Xc + $Radius + $LabelOffset;
}
if ($Angle > 180) {
$LabelSettings ["X3"] = $Xc -$Radius -$LabelOffset;
}
$this->LabelPos [] = $LabelSettings;
}
}