/** * @param Image $image */ public function setSplineData(Image $image) { $coordinates = array(array(40, 80), array(280, 60), array(340, 166), array(590, 120)); $settings = array("R" => 255, "G" => 255, "B" => 255, "ShowControl" => true); $image->drawSpline($coordinates, $settings); }
/** * Draw a scatter spline chart * @param array $Format */ public function drawScatterSplineChart(array $Format = array()) { $Data = $this->pDataObject->getData(); $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : false; $ImageMapTitle = isset($Format["ImageMapTitle"]) ? $Format["ImageMapTitle"] : null; $ImageMapPlotSize = isset($Format["ImageMapPlotSize"]) ? $Format["ImageMapPlotSize"] : 10; foreach ($Data["ScatterSeries"] as $Key => $Series) { if ($Series["isDrawable"] == true) { $SerieX = $Series["X"]; $SerieValuesX = $Data["Series"][$SerieX]["Data"]; $SerieXAxis = $Data["Series"][$SerieX]["Axis"]; $SerieY = $Series["Y"]; $SerieValuesY = $Data["Series"][$SerieY]["Data"]; $SerieYAxis = $Data["Series"][$SerieY]["Axis"]; $Ticks = $Series["Ticks"]; $Weight = $Series["Weight"]; if ($ImageMapTitle == null) { $Description = sprintf("%s / %s", $Data["Series"][$Series["X"]]["Description"], $Data["Series"][$Series["Y"]]["Description"]); } else { $Description = $ImageMapTitle; } $PosArrayX = $this->getPosArray($SerieValuesX, $SerieXAxis); if (!is_array($PosArrayX)) { $Value = $PosArrayX; $PosArrayX = array(); $PosArrayX[0] = $Value; } $PosArrayY = $this->getPosArray($SerieValuesY, $SerieYAxis); if (!is_array($PosArrayY)) { $Value = $PosArrayY; $PosArrayY = array(); $PosArrayY[0] = $Value; } $SplineSettings = array("R" => $Series["Color"]["R"], "G" => $Series["Color"]["G"], "B" => $Series["Color"]["B"], "Alpha" => $Series["Color"]["Alpha"]); if ($Ticks != 0) { $SplineSettings["Ticks"] = $Ticks; } if ($Weight != 0) { $SplineSettings["Weight"] = $Weight; } $LastX = VOID; $LastY = VOID; $WayPoints = array(); $Forces = array(); foreach ($PosArrayX as $Key => $Value) { $X = $Value; $Y = $PosArrayY[$Key]; $Force = $this->pChartObject->getLength($LastX, $LastY, $X, $Y) / 5; if ($X != VOID && $Y != VOID) { $RealValue = sprintf("%s / %s", round($Data["Series"][$Series["X"]]["Data"][$Key], 2), round($Data["Series"][$Series["Y"]]["Data"][$Key], 2)); if ($RecordImageMap) { $this->pChartObject->addToImageMap("CIRCLE", sprintf("%s,%s,%s", floor($X), floor($Y), $ImageMapPlotSize), $this->pChartObject->toHTMLColor($Series["Color"]["R"], $Series["Color"]["G"], $Series["Color"]["B"]), $Description, $RealValue); } } if ($X != VOID && $Y != VOID) { $WayPoints[] = array($X, $Y); $Forces[] = $Force; } if ($Y == VOID || $X == VOID) { $SplineSettings["Forces"] = $Forces; $this->pChartObject->drawSpline($WayPoints, $SplineSettings); $WayPoints = array(); $Forces = array(); } $LastX = $X; $LastY = $Y; } $SplineSettings["Forces"] = $Forces; $this->pChartObject->drawSpline($WayPoints, $SplineSettings); } } }