From a3865a0133a60c9cc79f5ed5e8cc66b0cf86ee71 Mon Sep 17 00:00:00 2001 From: hickert Date: Thu, 12 Aug 2010 09:16:09 +0000 Subject: [PATCH] Added pChart classes and GOsa mapping class to enable auto-include git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19382 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/include/class_pChartInclude.inc | 8 + gosa-core/include/pChart/CO2.csv | 37 + gosa-core/include/pChart/Example1.php | 45 + gosa-core/include/pChart/Example10.php | 34 + gosa-core/include/pChart/Example11.php | 50 + gosa-core/include/pChart/Example12.php | 45 + gosa-core/include/pChart/Example13.php | 32 + gosa-core/include/pChart/Example14.php | 33 + gosa-core/include/pChart/Example15.php | 68 + gosa-core/include/pChart/Example16.php | 42 + gosa-core/include/pChart/Example17.php | 48 + gosa-core/include/pChart/Example18.php | 55 + gosa-core/include/pChart/Example19.php | 44 + gosa-core/include/pChart/Example2.php | 43 + gosa-core/include/pChart/Example20.php | 44 + gosa-core/include/pChart/Example21.php | 53 + gosa-core/include/pChart/Example22.php | 50 + gosa-core/include/pChart/Example23.php | 49 + gosa-core/include/pChart/Example24.php | 53 + gosa-core/include/pChart/Example25.php | 55 + gosa-core/include/pChart/Example26.php | 69 + gosa-core/include/pChart/Example3.php | 42 + gosa-core/include/pChart/Example4.php | 45 + gosa-core/include/pChart/Example5.php | 42 + gosa-core/include/pChart/Example6.php | 39 + gosa-core/include/pChart/Example7.php | 42 + gosa-core/include/pChart/Example8.php | 41 + gosa-core/include/pChart/Example9.php | 49 + gosa-core/include/pChart/GeosansLight.ttf | Bin 0 -> 60072 bytes gosa-core/include/pChart/HomePage3.php | 70 + gosa-core/include/pChart/MankSans.ttf | Bin 0 -> 58492 bytes gosa-core/include/pChart/Naked.php | 34 + gosa-core/include/pChart/Point_Asterisk.gif | Bin 0 -> 1012 bytes gosa-core/include/pChart/Point_Cd.gif | Bin 0 -> 1020 bytes gosa-core/include/pChart/Sav143.tmp | 0 gosa-core/include/pChart/Silkscreen.ttf | Bin 0 -> 16172 bytes gosa-core/include/pChart/SmallGraph.php | 30 + gosa-core/include/pChart/SmallStacked.php | 48 + gosa-core/include/pChart/buildAll.cmd | 63 + gosa-core/include/pChart/bulkdata.csv | 20 + gosa-core/include/pChart/datawithtitle.csv | 21 + gosa-core/include/pChart/logo.png | Bin 0 -> 3406 bytes gosa-core/include/pChart/pCache.class | 119 + gosa-core/include/pChart/pChart.1.27d.rar | Bin 0 -> 299684 bytes gosa-core/include/pChart/pChart.class | 3489 +++++++++++++++++++ gosa-core/include/pChart/pData.class | 260 ++ gosa-core/include/pChart/pf_arma_five.ttf | Bin 0 -> 21936 bytes gosa-core/include/pChart/softtones.txt | 5 + gosa-core/include/pChart/tahoma.ttf | Bin 0 -> 383804 bytes gosa-core/include/pChart/tones.txt | 5 + 50 files changed, 5421 insertions(+) create mode 100644 gosa-core/include/class_pChartInclude.inc create mode 100644 gosa-core/include/pChart/CO2.csv create mode 100644 gosa-core/include/pChart/Example1.php create mode 100644 gosa-core/include/pChart/Example10.php create mode 100644 gosa-core/include/pChart/Example11.php create mode 100644 gosa-core/include/pChart/Example12.php create mode 100644 gosa-core/include/pChart/Example13.php create mode 100644 gosa-core/include/pChart/Example14.php create mode 100644 gosa-core/include/pChart/Example15.php create mode 100644 gosa-core/include/pChart/Example16.php create mode 100644 gosa-core/include/pChart/Example17.php create mode 100644 gosa-core/include/pChart/Example18.php create mode 100644 gosa-core/include/pChart/Example19.php create mode 100644 gosa-core/include/pChart/Example2.php create mode 100644 gosa-core/include/pChart/Example20.php create mode 100644 gosa-core/include/pChart/Example21.php create mode 100644 gosa-core/include/pChart/Example22.php create mode 100644 gosa-core/include/pChart/Example23.php create mode 100644 gosa-core/include/pChart/Example24.php create mode 100644 gosa-core/include/pChart/Example25.php create mode 100644 gosa-core/include/pChart/Example26.php create mode 100644 gosa-core/include/pChart/Example3.php create mode 100644 gosa-core/include/pChart/Example4.php create mode 100644 gosa-core/include/pChart/Example5.php create mode 100644 gosa-core/include/pChart/Example6.php create mode 100644 gosa-core/include/pChart/Example7.php create mode 100644 gosa-core/include/pChart/Example8.php create mode 100644 gosa-core/include/pChart/Example9.php create mode 100644 gosa-core/include/pChart/GeosansLight.ttf create mode 100644 gosa-core/include/pChart/HomePage3.php create mode 100644 gosa-core/include/pChart/MankSans.ttf create mode 100644 gosa-core/include/pChart/Naked.php create mode 100644 gosa-core/include/pChart/Point_Asterisk.gif create mode 100644 gosa-core/include/pChart/Point_Cd.gif create mode 100644 gosa-core/include/pChart/Sav143.tmp create mode 100644 gosa-core/include/pChart/Silkscreen.ttf create mode 100644 gosa-core/include/pChart/SmallGraph.php create mode 100644 gosa-core/include/pChart/SmallStacked.php create mode 100644 gosa-core/include/pChart/buildAll.cmd create mode 100644 gosa-core/include/pChart/bulkdata.csv create mode 100644 gosa-core/include/pChart/datawithtitle.csv create mode 100644 gosa-core/include/pChart/logo.png create mode 100644 gosa-core/include/pChart/pCache.class create mode 100644 gosa-core/include/pChart/pChart.1.27d.rar create mode 100644 gosa-core/include/pChart/pChart.class create mode 100644 gosa-core/include/pChart/pData.class create mode 100644 gosa-core/include/pChart/pf_arma_five.ttf create mode 100644 gosa-core/include/pChart/softtones.txt create mode 100644 gosa-core/include/pChart/tahoma.ttf create mode 100644 gosa-core/include/pChart/tones.txt diff --git a/gosa-core/include/class_pChartInclude.inc b/gosa-core/include/class_pChartInclude.inc new file mode 100644 index 000000000..90f06deba --- /dev/null +++ b/gosa-core/include/class_pChartInclude.inc @@ -0,0 +1,8 @@ + diff --git a/gosa-core/include/pChart/CO2.csv b/gosa-core/include/pChart/CO2.csv new file mode 100644 index 000000000..6bbe3d00f --- /dev/null +++ b/gosa-core/include/pChart/CO2.csv @@ -0,0 +1,37 @@ +Year,Jan.,Feb.,March,April,May,June,July,Aug.,Sept.,Oct.,Nov.,Dec.,Annual +1967,322.33,322.5,323.04,324.42,325,324.09,322.55,320.92,319.26,319.39,320.72,321.96,322.18 +1968,322.57,323.15,323.89,325.02,325.57,325.36,324.14,322.11,320.33,320.25,321.32,322.9,323.05 +1969,324,324.42,325.64,326.66,327.38,326.7,325.89,323.67,322.38,321.78,322.85,324.12,324.62 +1970,325.06,325.98,326.93,328.13,328.07,327.66,326.35,324.69,323.1,323.07,324.01,325.13,325.68 +1971,326.17,326.68,327.18,327.78,328.92,328.57,327.37,325.43,323.36,323.56,324.8,326.01,326.32 +1972,326.77,327.63,327.75,329.72,330.07,329.09,328.05,326.32,324.84,325.2,326.5,327.55,327.46 +1973,328.54,329.56,330.3,331.5,332.48,332.07,330.87,329.31,327.51,327.18,328.16,328.64,329.68 +1974,329.35,330.71,331.48,332.65,333.09,332.25,331.18,329.4,327.44,327.37,328.46,329.58,330.25 +1975,330.4,331.41,332.04,333.31,333.96,333.59,331.91,330.06,328.56,328.34,329.49,330.76,331.15 +1976,331.74,332.56,333.5,334.58,334.87,334.34,333.05,330.94,329.3,328.94,330.31,331.68,332.15 +1977,332.92,333.42,334.7,336.07,336.74,336.27,334.93,332.75,331.58,331.16,332.4,333.85,333.9 +1978,334.97,335.39,336.64,337.76,338.01,337.89,336.54,334.68,332.76,332.54,333.92,334.95,335.5 +1979,336.23,336.76,337.96,338.89,339.47,339.29,337.73,336.09,333.91,333.86,335.29,336.73,336.85 +1980,338.01,338.36,340.08,340.77,341.46,341.17,339.56,337.6,335.88,336.01,337.1,338.21,338.69 +1981,339.23,340.47,341.38,342.51,342.91,342.25,340.49,338.43,336.69,336.85,338.36,339.61,339.93 +1982,340.75,341.61,342.7,343.56,344.13,343.35,342.06,339.82,337.97,337.86,339.26,340.49,341.13 +1983,341.37,342.52,343.1,344.94,345.75,345.32,343.99,342.39,339.86,339.99,341.16,342.99,342.78 +1984,343.7,344.51,345.28,347.08,347.43,346.79,345.4,343.28,341.07,341.35,342.98,344.22,344.42 +1985,344.97,346,347.43,348.35,348.93,348.25,346.56,344.69,343.09,342.8,344.24,345.56,345.9 +1986,346.29,346.96,347.86,349.55,350.21,349.54,347.94,345.91,344.86,344.17,345.66,346.9,347.15 +1987,348.02,348.47,349.42,350.99,351.84,351.25,349.52,348.1,346.44,346.36,347.81,348.96,348.93 +1988,350.43,351.72,352.22,353.59,354.22,353.79,352.39,350.44,348.72,348.88,350.07,351.34,351.48 +1989,352.76,353.07,353.68,355.42,355.67,355.13,353.9,351.67,349.8,349.99,351.3,352.53,352.91 +1990,353.66,354.7,355.39,356.2,357.16,356.22,354.82,352.91,350.96,351.18,352.83,354.21,354.19 +1991,354.72,355.75,357.16,358.6,359.34,358.24,356.17,354.03,352.16,352.21,353.75,354.99,355.59 +1992,355.98,356.72,357.81,359.15,359.66,359.25,357.03,355,353.01,353.31,354.16,355.4,356.37 +1993,356.7,357.16,358.38,359.46,360.28,359.6,357.57,355.52,353.7,353.98,355.33,356.8,357.04 +1994,358.36,358.91,359.97,361.26,361.68,360.95,359.55,357.49,355.84,355.99,357.58,359.04,358.88 +1995,359.96,361,361.64,363.45,363.79,363.26,361.9,359.46,358.06,357.75,359.56,360.7,360.88 +1996,362.05,363.25,364.03,364.72,365.41,364.97,363.65,361.49,359.46,359.6,360.76,362.33,362.64 +1997,363.18,364,364.57,366.35,366.79,365.62,364.47,362.51,360.19,360.77,362.43,364.28,363.76 +1998,365.32,366.15,367.31,368.61,369.3,368.87,367.64,365.77,363.9,364.23,365.46,366.97,366.63 +1999,368.15,368.86,369.58,371.12,370.97,370.33,369.25,366.91,364.6,365.09,366.63,367.96,368.29 +2000,369.08,369.4,370.45,371.59,371.75,371.62,370.04,368.04,366.54,366.63,368.2,369.43,369.4 +2001,370.17,371.39,372,372.75,373.88,373.17,371.48,369.42,367.83,367.96,369.55,371.1,370.89 +2002,372.29,372.94,373.38,374.71,375.4,375.26,373.87,371.35,370.57,370.1,371.93,373.63,372.95 diff --git a/gosa-core/include/pChart/Example1.php b/gosa-core/include/pChart/Example1.php new file mode 100644 index 000000000..bc2304343 --- /dev/null +++ b/gosa-core/include/pChart/Example1.php @@ -0,0 +1,45 @@ +ImportFromCSV("Sample/bulkdata.csv",",",array(1,2,3),FALSE,0); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetSerieName("March","Serie3"); + $DataSet->SetYAxisName("Average age"); + $DataSet->SetYAxisUnit("µs"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(70,30,680,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"example 1",50,50,50,585); + $Test->Render("example1.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example10.php b/gosa-core/include/pChart/Example10.php new file mode 100644 index 000000000..7e48d94ff --- /dev/null +++ b/gosa-core/include/pChart/Example10.php @@ -0,0 +1,34 @@ +AddPoint(array(10,2,3,5,3),"Serie1"); + $DataSet->AddPoint(array("January","February","March","April","May"),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie("Serie2"); + + // Initialise the graph + $Test = new pChart(420,250); + $Test->drawFilledRoundedRectangle(7,7,413,243,5,240,240,240); + $Test->drawRoundedRectangle(5,5,415,245,5,230,230,230); + $Test->createColorGradientPalette(195,204,56,223,110,41,5); + + // Draw the pie chart + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->AntialiasQuality = 0; + $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),180,130,110,PIE_PERCENTAGE_LABEL,FALSE,50,20,5); + $Test->drawPieLegend(330,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250); + + // Write the title + $Test->setFontProperties("Fonts/MankSans.ttf",10); + $Test->drawTitle(10,20,"Sales per month",100,100,100); + + $Test->Render("example10.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example11.php b/gosa-core/include/pChart/Example11.php new file mode 100644 index 000000000..be15e327c --- /dev/null +++ b/gosa-core/include/pChart/Example11.php @@ -0,0 +1,50 @@ +AddPoint(array(1,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(1,4,2,6,2,3,0,1,5,1,2,4,5,2,1,0,6,4,2),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Cache definition + $Cache = new pCache(); + $Cache->GetFromCache("Graph1",$DataSet->GetData()); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the cubic curve graph + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 1",50,50,50,585); + + // Render the graph + $Cache->WriteToCache("Graph1",$DataSet->GetData(),$Test); + $Test->Render("example1.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example12.php b/gosa-core/include/pChart/Example12.php new file mode 100644 index 000000000..dc003ab4a --- /dev/null +++ b/gosa-core/include/pChart/Example12.php @@ -0,0 +1,45 @@ +AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); + $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); + $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetSerieName("March","Serie3"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,680,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the bar graph + $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80); + + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 12",50,50,50,585); + $Test->Render("example12.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example13.php b/gosa-core/include/pChart/Example13.php new file mode 100644 index 000000000..28638c81a --- /dev/null +++ b/gosa-core/include/pChart/Example13.php @@ -0,0 +1,32 @@ +AddPoint(array(10,2,3,5,3),"Serie1"); + $DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May"),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie("Serie2"); + + // Initialise the graph + $Test = new pChart(300,200); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawFilledRoundedRectangle(7,7,293,193,5,240,240,240); + $Test->drawRoundedRectangle(5,5,295,195,5,230,230,230); + + // Draw the pie chart + $Test->AntialiasQuality = 0; + $Test->setShadowProperties(2,2,200,200,200); + $Test->drawFlatPieGraphWithShadow($DataSet->GetData(),$DataSet->GetDataDescription(),120,100,60,PIE_PERCENTAGE,8); + $Test->clearShadow(); + + $Test->drawPieLegend(230,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250); + + $Test->Render("example13.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example14.php b/gosa-core/include/pChart/Example14.php new file mode 100644 index 000000000..1b7225ea0 --- /dev/null +++ b/gosa-core/include/pChart/Example14.php @@ -0,0 +1,33 @@ +AddPoint(array(10,2,3,5,3),"Serie1"); + $DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May"),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie("Serie2"); + + // Initialise the graph + $Test = new pChart(300,200); + $Test->loadColorPalette("Sample/softtones.txt"); + $Test->drawFilledRoundedRectangle(7,7,293,193,5,240,240,240); + $Test->drawRoundedRectangle(5,5,295,195,5,230,230,230); + + // This will draw a shadow under the pie chart + $Test->drawFilledCircle(122,102,70,200,200,200); + + // Draw the pie chart + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->AntialiasQuality = 0; + $Test->drawBasicPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),120,100,70,PIE_PERCENTAGE,255,255,218); + $Test->drawPieLegend(230,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250); + + $Test->Render("example14.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example15.php b/gosa-core/include/pChart/Example15.php new file mode 100644 index 000000000..57b52ce33 --- /dev/null +++ b/gosa-core/include/pChart/Example15.php @@ -0,0 +1,68 @@ +AddPoint(array(10,9.4,7.7,5,1.7,-1.7,-5,-7.7,-9.4,-10,-9.4,-7.7,-5,-1.8,1.7),"Serie1"); + $DataSet->AddPoint(array(0,3.4,6.4,8.7,9.8,9.8,8.7,6.4,3.4,0,-3.4,-6.4,-8.6,-9.8,-9.9),"Serie2"); + $DataSet->AddPoint(array(7.1,9.1,10,9.7,8.2,5.7,2.6,-0.9,-4.2,-7.1,-9.1,-10,-9.7,-8.2,-5.8),"Serie3"); + $DataSet->AddPoint(array("Jan","Jan","Jan","Feb","Feb","Feb","Mar","Mar","Mar","Apr","Apr","Apr","May","May","May"),"Serie4"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie("Serie4"); + $DataSet->SetSerieName("Max Average","Serie1"); + $DataSet->SetSerieName("Min Average","Serie2"); + $DataSet->SetSerieName("Temperature","Serie3"); + $DataSet->SetYAxisName("Temperature"); + $DataSet->SetXAxisName("Month of the year"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->reportWarnings("GD"); + $Test->setFixedScale(-12,12,5); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(65,30,570,185); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE,3); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the area + $DataSet->RemoveSerie("Serie4"); + $Test->drawArea($DataSet->GetData(),"Serie1","Serie2",239,238,227,50); + $DataSet->RemoveSerie("Serie3"); + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Draw the line graph + $Test->setLineStyle(1,6); + $DataSet->RemoveAllSeries(); + $DataSet->AddSerie("Serie3"); + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Write values on Serie3 + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->writeValues($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie3"); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(590,90,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"example 15",50,50,50,585); + + // Add an image + $Test->drawFromPNG("Sample/logo.png",584,35); + + // Render the chart + $Test->Render("example15.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example16.php b/gosa-core/include/pChart/Example16.php new file mode 100644 index 000000000..8c69858e4 --- /dev/null +++ b/gosa-core/include/pChart/Example16.php @@ -0,0 +1,42 @@ +ImportFromCSV("Sample/CO2.csv",",",array(1,2,3,4),TRUE,0); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetYAxisName("CO2 concentrations"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->reportWarnings("GD"); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(60,30,680,180); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,90,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(70,40,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"CO2 concentrations at Mauna Loa",50,50,50,585); + $Test->Render("example16.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example17.php b/gosa-core/include/pChart/Example17.php new file mode 100644 index 000000000..5b769e990 --- /dev/null +++ b/gosa-core/include/pChart/Example17.php @@ -0,0 +1,48 @@ +AddPoint(array(100,320,200,10,43),"Serie1"); + $DataSet->AddPoint(array(23,432,43,153,234),"Serie2"); + $DataSet->AddPoint(array(1217541600,1217628000,1217714400,1217800800,1217887200),"Serie3"); + $DataSet->AddSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("Incoming","Serie1"); + $DataSet->SetSerieName("Outgoing","Serie2"); + $DataSet->SetYAxisName("Call duration"); + $DataSet->SetYAxisFormat("time"); + $DataSet->SetXAxisFormat("date"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(85,30,650,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(90,35,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"example 17",50,50,50,585); + $Test->Render("example17.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example18.php b/gosa-core/include/pChart/Example18.php new file mode 100644 index 000000000..572889866 --- /dev/null +++ b/gosa-core/include/pChart/Example18.php @@ -0,0 +1,55 @@ +AddPoint(array(2,5,7,"","",5,6,4,8,4,"",2,5,6,4,5,6,7,6),"Serie1"); + $DataSet->AddPoint(array(-1,-3,-1,-2,-4,-1,"",-4,-5,-3,-2,-2,-3,-3,-5,-4,-3,-1,""),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("Raw #1","Serie1"); + $DataSet->SetSerieName("Raw #2","Serie2"); + $DataSet->SetYAxisName("Response time"); + $DataSet->SetXAxisName("Sample #ID"); + + //print_r($DataSet->GetData()); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(55,30,585,185); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the line graph + $DataSet->RemoveSerie("Serie2"); + $Test->drawFilledLineGraph($DataSet->GetData(),$DataSet->GetDataDescription(),60,TRUE); + + // Draw the curve graph + $DataSet->RemoveSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $Test->setShadowProperties(2,2,200,200,200,50); + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + $Test->clearShadow(); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 18",50,50,50,585); + $Test->Render("example18.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example19.php b/gosa-core/include/pChart/Example19.php new file mode 100644 index 000000000..cc430b5ed --- /dev/null +++ b/gosa-core/include/pChart/Example19.php @@ -0,0 +1,44 @@ +AddPoint(array(10,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(1,4,2,6,2,3,0,1,-5,1,2,4,5,2,1,0,6,4,30),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetXAxisName("Samples"); + $DataSet->SetYAxisName("Temperature"); + $DataSet->SetSerieName("January","Serie1"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->reportWarnings("GD"); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(60,30,585,185); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the cubic curve graph + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 19",50,50,50,585); + $Test->Render("example19.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example2.php b/gosa-core/include/pChart/Example2.php new file mode 100644 index 000000000..5aa0605a9 --- /dev/null +++ b/gosa-core/include/pChart/Example2.php @@ -0,0 +1,43 @@ +AddPoint(array(1,4,3,4,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(1,4,2,6,2,3,0,1,5,1,2,4,5,2,1,0,6,4,2),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFixedScale(-2,8); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the cubic curve graph + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 2",50,50,50,585); + $Test->Render("example2.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example20.php b/gosa-core/include/pChart/Example20.php new file mode 100644 index 000000000..5f263219b --- /dev/null +++ b/gosa-core/include/pChart/Example20.php @@ -0,0 +1,44 @@ +AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); + $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); + $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetSerieName("March","Serie3"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,680,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the bar graph + $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),100); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 20",50,50,50,585); + $Test->Render("example20.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example21.php b/gosa-core/include/pChart/Example21.php new file mode 100644 index 000000000..a0c12ec30 --- /dev/null +++ b/gosa-core/include/pChart/Example21.php @@ -0,0 +1,53 @@ +AddPoint(array(9,9,9,10,10,11,12,14,16,17,18,18,19,19,18,15,12,10,9),"Serie1"); + $DataSet->AddPoint(array(10,11,11,12,12,13,14,15,17,19,22,24,23,23,22,20,18,16,14),"Serie2"); + $DataSet->AddPoint(array(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22),"Serie3"); + $DataSet->AddAllSeries(); + $DataSet->RemoveSerie("Serie3"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetYAxisName("Temperature"); + $DataSet->SetYAxisUnit("°C"); + $DataSet->SetXAxisUnit("h"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->drawGraphAreaGradient(132,153,172,50,TARGET_BACKGROUND); + + // Graph area setup + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(60,20,585,180); + $Test->drawGraphArea(213,217,221,FALSE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,2); + $Test->drawGraphAreaGradient(162,183,202,50); + $Test->drawGrid(4,TRUE,230,230,230,20); + + // Draw the line chart + $Test->setShadowProperties(3,3,0,0,0,30,4); + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->clearShadow(); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),4,2,-1,-1,-1,TRUE); + + // Draw the legend + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(605,142,$DataSet->GetDataDescription(),236,238,240,52,58,82); + + // Draw the title + $Title = "Average Temperatures during the first months of 2008 "; + $Test->drawTextBox(0,210,700,230,$Title,0,255,255,255,ALIGN_RIGHT,TRUE,0,0,0,30); + + // Render the picture + $Test->addBorder(2); + $Test->Render("example21.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example22.php b/gosa-core/include/pChart/Example22.php new file mode 100644 index 000000000..ea2a73515 --- /dev/null +++ b/gosa-core/include/pChart/Example22.php @@ -0,0 +1,50 @@ +AddPoint(array(60,70,90,110,100,90),"Serie1"); + $DataSet->AddPoint(array(40,50,60,80,70,60),"Serie2"); + $DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May","Jun"),"Serie3"); + $DataSet->AddSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("Company A","Serie1"); + $DataSet->SetSerieName("Company B","Serie2"); + $DataSet->SetYAxisName("Product sales"); + $DataSet->SetYAxisUnit("k"); + $DataSet->SetSerieSymbol("Serie1","Sample/Point_Asterisk.gif"); + $DataSet->SetSerieSymbol("Serie2","Sample/Point_Cd.gif"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(65,30,650,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the title + $Test->setFontProperties("Fonts/pf_arma_five.ttf",6); + $Title = "Comparative product sales for company A & B "; + $Test->drawTextBox(65,30,650,45,$Title,0,255,255,255,ALIGN_RIGHT,TRUE,0,0,0,30); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Draw the legend + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(80,60,$DataSet->GetDataDescription(),255,255,255); + + // Render the chart + $Test->Render("example22.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example23.php b/gosa-core/include/pChart/Example23.php new file mode 100644 index 000000000..778ebbb97 --- /dev/null +++ b/gosa-core/include/pChart/Example23.php @@ -0,0 +1,49 @@ +AddPoint(array(9,9,9,10,10,11,12,14,16,17,18,18,19,19,18,15,12,10,9),"Serie1"); + $DataSet->AddPoint(array(10,11,11,12,12,13,14,15,17,19,22,24,23,23,22,20,18,16,14),"Serie2"); + $DataSet->AddPoint(array(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22),"Serie3"); + $DataSet->AddAllSeries(); + $DataSet->RemoveSerie("Serie3"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetYAxisName("Temperature"); + $DataSet->SetYAxisUnit("°C"); + $DataSet->SetXAxisUnit("h"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->drawGraphAreaGradient(132,173,131,50,TARGET_BACKGROUND); + + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(120,20,675,190); + $Test->drawGraphArea(213,217,221,FALSE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,213,217,221,TRUE,0,2,TRUE); + $Test->drawGraphAreaGradient(163,203,167,50); + $Test->drawGrid(4,TRUE,230,230,230,20); + + // Draw the bar chart + $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),70); + + // Draw the title + $Title = " Average Temperatures during\r\n the first months of 2008 "; + $Test->drawTextBox(0,0,50,230,$Title,90,255,255,255,ALIGN_BOTTOM_CENTER,TRUE,0,0,0,30); + + // Draw the legend + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(610,10,$DataSet->GetDataDescription(),236,238,240,52,58,82); + + // Render the picture + $Test->addBorder(2); + $Test->Render("example23.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example24.php b/gosa-core/include/pChart/Example24.php new file mode 100644 index 000000000..f8946904b --- /dev/null +++ b/gosa-core/include/pChart/Example24.php @@ -0,0 +1,53 @@ +AddPoint(cos($i*3.14/180)*80+$i,"Serie1"); + $DataSet->AddPoint(sin($i*3.14/180)*80+$i,"Serie2"); + } + + $DataSet->SetSerieName("Trigonometric function","Serie1"); + $DataSet->AddSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $DataSet->SetXAxisName("X Axis"); + $DataSet->SetYAxisName("Y Axis"); + + // Initialise the graph + $Test = new pChart(300,300); + $Test->drawGraphAreaGradient(0,0,0,-100,TARGET_BACKGROUND); + + // Prepare the graph area + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(55,30,270,230); + $Test->drawXYScale($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie1","Serie2",213,217,221,TRUE,45); + $Test->drawGraphArea(213,217,221,FALSE); + $Test->drawGraphAreaGradient(30,30,30,-50); + $Test->drawGrid(4,TRUE,230,230,230,20); + + // Draw the chart + $Test->setShadowProperties(2,2,0,0,0,60,4); + $Test->drawXYGraph($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie1","Serie2",0); + $Test->clearShadow(); + + // Draw the title + $Title = "Drawing X versus Y charts trigonometric functions "; + $Test->drawTextBox(0,280,300,300,$Title,0,255,255,255,ALIGN_RIGHT,TRUE,0,0,0,30); + + // Draw the legend + $Test->setFontProperties("Fonts/pf_arma_five.ttf",6); + $DataSet->RemoveSerie("Serie2"); + $Test->drawLegend(160,5,$DataSet->GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); + + $Test->Render("example24.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example25.php b/gosa-core/include/pChart/Example25.php new file mode 100644 index 000000000..1d991ba11 --- /dev/null +++ b/gosa-core/include/pChart/Example25.php @@ -0,0 +1,55 @@ +AddPoint(array(9,9,9,10,10,11,12,14,16,17,18,18,19,19,18,15,12,10,9),"Serie1"); + $DataSet->AddPoint(array(10,11,11,12,12,13,14,15,17,19,22,24,23,23,22,20,18,16,14),"Serie2"); + $DataSet->AddPoint(array(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22),"Serie3"); + $DataSet->AddAllSeries(); + $DataSet->RemoveSerie("Serie3"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + $DataSet->SetYAxisName("Temperature"); + $DataSet->SetYAxisUnit("°C"); + $DataSet->SetXAxisUnit("h"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); + $Test->setFixedScale(0,40,4); + + // Graph area setup + $Test->setFontProperties("Fonts/pf_arma_five.ttf",6); + $Test->setGraphArea(60,40,680,200); + $Test->drawGraphArea(200,200,200,FALSE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,200,200,200,TRUE,0,2); + $Test->drawGraphAreaGradient(40,40,40,-50); + $Test->drawGrid(4,TRUE,230,230,230,10); + + // Draw the line chart + $Test->setShadowProperties(3,3,0,0,0,30,4); + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->clearShadow(); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,0,-1,-1,-1,TRUE); + + // Write the title + $Test->setFontProperties("Fonts/MankSans.ttf",18); + $Test->setShadowProperties(1,1,0,0,0); + $Test->drawTitle(0,0,"Average temperatures",255,255,255,700,30,TRUE); + $Test->clearShadow(); + + // Draw the legend + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(610,5,$DataSet->GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); + + // Render the picture + $Test->Render("example25.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example26.php b/gosa-core/include/pChart/Example26.php new file mode 100644 index 000000000..320a2ec7d --- /dev/null +++ b/gosa-core/include/pChart/Example26.php @@ -0,0 +1,69 @@ +AddPoint(array(110,101,118,108,110,106,104),"Serie1"); + $DataSet->AddPoint(array(700,2705,2041,1712,2051,846,903),"Serie2"); + $DataSet->AddPoint(array("03 Oct","02 Oct","01 Oct","30 Sep","29 Sep","28 Sep","27 Sep"),"Serie3"); + $DataSet->AddSerie("Serie1"); + $DataSet->SetAbsciseLabelSerie("Serie3"); + $DataSet->SetSerieName("SourceForge Rank","Serie1"); + $DataSet->SetSerieName("Web Hits","Serie2"); + + // Initialise the graph + $Test = new pChart(660,230); + $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); + + // Prepare the graph area + $Test->setFontProperties("fonts/tahoma.ttf",8); + $Test->setGraphArea(60,40,595,190); + + // Initialise graph area + $Test->setFontProperties("fonts/tahoma.ttf",8); + + // Draw the SourceForge Rank graph + $DataSet->SetYAxisName("Sourceforge Rank"); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0); + $Test->drawGraphAreaGradient(40,40,40,-50); + $Test->drawGrid(4,TRUE,230,230,230,10); + $Test->setShadowProperties(3,3,0,0,0,30,4); + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->clearShadow(); + $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Clear the scale + $Test->clearScale(); + + // Draw the 2nd graph + $DataSet->RemoveSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $DataSet->SetYAxisName("Web Hits"); + $Test->drawRightScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0); + $Test->drawGrid(4,TRUE,230,230,230,10); + $Test->setShadowProperties(3,3,0,0,0,30,4); + $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->clearShadow(); + $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Write the legend (box less) + $Test->setFontProperties("fonts/tahoma.ttf",8); + $Test->drawLegend(530,5,$DataSet->GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); + + // Write the title + $Test->setFontProperties("fonts/MankSans.ttf",18); + $Test->setShadowProperties(1,1,0,0,0); + $Test->drawTitle(0,0,"SourceForge ranking summary",255,255,255,660,30,TRUE); + $Test->clearShadow(); + + // Render the picture + $Test->Render("example26.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example3.php b/gosa-core/include/pChart/Example3.php new file mode 100644 index 000000000..0677be22a --- /dev/null +++ b/gosa-core/include/pChart/Example3.php @@ -0,0 +1,42 @@ +AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4,-3,2,-3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(0,3,-4,1,-2,2,1,0,-1,6,3,-4,1,-4,2,4,0,-1,6),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the bar graph + $Test->drawOverlayBarGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 3",50,50,50,585); + $Test->Render("example3.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example4.php b/gosa-core/include/pChart/Example4.php new file mode 100644 index 000000000..278cd2696 --- /dev/null +++ b/gosa-core/include/pChart/Example4.php @@ -0,0 +1,45 @@ +ImportFromCSV("Sample/datawithtitle.csv",",",array(1,2,3),TRUE,0); + $DataSet->AddSerie("Serie2"); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->removeSerieName("Serie1"); + $DataSet->removeSerieName("Serie3"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(60,30,680,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the area + $Test->drawArea($DataSet->GetData(),"Serie1","Serie3",239,238,227,50); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(65,35,$DataSet->GetDataDescription(),250,250,250); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"Example 4",50,50,50,585); + $Test->Render("example4.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example5.php b/gosa-core/include/pChart/Example5.php new file mode 100644 index 000000000..d643b5af8 --- /dev/null +++ b/gosa-core/include/pChart/Example5.php @@ -0,0 +1,42 @@ +AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4,-3,2,-3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(2,5,7,5,1,5,6,4,8,4,0,2,5,6,4,5,6,7,6),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the limit graph + $Test->drawLimitsGraph($DataSet->GetData(),$DataSet->GetDataDescription(),180,180,180); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 5",50,50,50,585); + $Test->Render("example5.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example6.php b/gosa-core/include/pChart/Example6.php new file mode 100644 index 000000000..689f29798 --- /dev/null +++ b/gosa-core/include/pChart/Example6.php @@ -0,0 +1,39 @@ +ImportFromCSV("Sample/datawithtitle.csv",",",array(1,2,3),TRUE,0); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(60,30,680,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the filled line graph + $Test->drawFilledLineGraph($DataSet->GetData(),$DataSet->GetDataDescription(),50,TRUE); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(65,35,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"Example 6",50,50,50,585); + $Test->Render("example6.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example7.php b/gosa-core/include/pChart/Example7.php new file mode 100644 index 000000000..d4e05ed7a --- /dev/null +++ b/gosa-core/include/pChart/Example7.php @@ -0,0 +1,42 @@ +AddPoint(array(1,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1"); + $DataSet->AddPoint(array(1,4,2,6,2,3,0,1,5,1,2,4,5,2,1,0,6,4,2),"Serie2"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the cubic curve graph + $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,50); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 7",50,50,50,585); + $Test->Render("example7.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example8.php b/gosa-core/include/pChart/Example8.php new file mode 100644 index 000000000..f6cb98f4d --- /dev/null +++ b/gosa-core/include/pChart/Example8.php @@ -0,0 +1,41 @@ +AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label"); + $DataSet->AddPoint(array(1,2,3,4,3),"Serie1"); + $DataSet->AddPoint(array(1,4,2,6,2),"Serie2"); + $DataSet->AddSerie("Serie1"); + $DataSet->AddSerie("Serie2"); + $DataSet->SetAbsciseLabelSerie("Label"); + + + $DataSet->SetSerieName("Reference","Serie1"); + $DataSet->SetSerieName("Tested computer","Serie2"); + + // Initialise the graph + $Test = new pChart(400,400); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240); + $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230); + $Test->setGraphArea(30,30,370,370); + $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255); + $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220); + + // Draw the radar graph + $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230); + $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20); + + // Finish the graph + $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(0,22,"Example 8",50,50,50,400); + $Test->Render("example8.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Example9.php b/gosa-core/include/pChart/Example9.php new file mode 100644 index 000000000..aa2a6cc58 --- /dev/null +++ b/gosa-core/include/pChart/Example9.php @@ -0,0 +1,49 @@ +AddPoint(array(0,70,70,0,0,70,70,0,0,70),"Serie1"); + $DataSet->AddPoint(array(0.5,2,4.5,8,12.5,18,24.5,32,40.5,50),"Serie2"); + + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + $DataSet->SetSerieName("February","Serie2"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(50,30,585,200); + $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Set labels + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setLabel($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie1","2","Daily incomes",221,230,174); + $Test->setLabel($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie2","6","Production break",239,233,195); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(50,22,"Example 9",50,50,50,585); + $Test->Render("example9.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/GeosansLight.ttf b/gosa-core/include/pChart/GeosansLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..055932aac8de6861ab4e3a8f54e54d1f170101de GIT binary patch literal 60072 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,2,5),"Serie1"); + $DataSet->AddPoint(array(3,2,2),"Serie2"); + $DataSet->AddPoint(array(3,4,1),"Serie3"); + $DataSet->AddPoint(array("A#~1","A#~2","A#~3"),"Labels"); + $DataSet->AddAllSeries(); + $DataSet->RemoveSerie("Labels"); + $DataSet->SetAbsciseLabelSerie("Labels"); + $DataSet->SetSerieName("Alpha","Serie1"); + $DataSet->SetSerieName("Beta","Serie2"); + $DataSet->SetSerieName("Gama","Serie3"); + $DataSet->SetXAxisName("Samples IDs"); + $DataSet->SetYAxisName("Test Marker"); + $DataSet->SetYAxisUnit("µm"); + + // Initialise the graph + $Test = new pChart(380,400); + $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); + + // Graph area setup + $Test->setFontProperties("Fonts/pf_arma_five.ttf",6); + $Test->setGraphArea(110,180,350,360); + $Test->drawGraphArea(213,217,221,FALSE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,213,217,221,TRUE,0,2,TRUE); + $Test->drawGraphAreaGradient(40,40,40,-50); + $Test->drawGrid(4,TRUE,230,230,230,5); + + // Draw the title + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Title = " Average growth size for selected\r\n DNA samples "; + $Test->setLineStyle(2); + $Test->drawLine(51,-2,51,402,0,0,0); + $Test->setLineStyle(1); + $Test->drawTextBox(0,0,50,400,$Title,90,255,255,255,ALIGN_BOTTOM_CENTER,TRUE,0,0,0,30); + $Test->setFontProperties("Fonts/pf_arma_five.ttf",6); + + // Draw the bar graph + $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),70); + + // Second chart + $DataSet->SetXAxisName(""); + $Test->clearScale(); + $Test->setGraphArea(110,20,350,140); + $Test->drawGraphArea(213,217,221,FALSE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,213,217,221,TRUE,0,2); + $Test->drawGraphAreaGradient(40,40,40,-50); + $Test->drawGrid(4,TRUE,230,230,230,5); + + // Draw the line chart + $Test->setShadowProperties(0,3,0,0,0,30,4); + $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,40); + $Test->clearShadow(); + + // Write the legend + $Test->drawLegend(-2,3,$DataSet->GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); + + // Finish the graph + $Test->addBorder(1); + $Test->Render("HomePage2.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/MankSans.ttf b/gosa-core/include/pChart/MankSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a6146a9004ccc2996161f121bdd61e248d438c91 GIT binary patch literal 58492 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 literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/Naked.php b/gosa-core/include/pChart/Naked.php new file mode 100644 index 000000000..0699611b5 --- /dev/null +++ b/gosa-core/include/pChart/Naked.php @@ -0,0 +1,34 @@ +AddPoint(array(1,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7)); + $DataSet->AddSerie(); + $DataSet->SetSerieName("Sample data","Serie1"); + + // Initialise the graph + $Test = new pChart(700,230); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->setGraphArea(40,30,680,200); + $Test->drawGraphArea(252,252,252,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2); + $Test->drawGrid(4,TRUE,230,230,230,70); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(45,35,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(60,22,"My pretty graph",50,50,50,585); + $Test->Render("Naked.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/Point_Asterisk.gif b/gosa-core/include/pChart/Point_Asterisk.gif new file mode 100644 index 0000000000000000000000000000000000000000..f75e9b84a23337ab0239fb24631e16c90545ac25 GIT binary patch literal 1012 zcmeIx|1Z>W90%~{&DpqW&U{%(g_)IVtC$sPpKIpJ4;pG^MO+fAR{3%(T6VsjFEf(L zq*N-yOr=sH-EpKbedODnFXx;t6#4$;bKl~&>7(I8kC?7)k2%~FC zpn8n4C;0Ic>QbnmVf+Oq$}m}uUu!DxyAo4Xn6AQ1HD+EyU2Ze`8gn(6U-JeFZ?X6e zi?vv)#qxVBf51u|RzHHN2h#w}Cukd?`wUf?qq^EnRp~iX@A9YKeY&1E)99raLob1$ z39DkOCCM&E>Y)GXpzGK>Cpog%3H=3B#8=}3l-()M1^^+srVuaf?YL>^A$d@{h-$)m{N zc`^`X7+MRLi0rbqU!al2Y6oJqg94pAmJG(}2CkFg7=z-PemGG-lBieQGAI+sx+J1V z*DI6BsE~{%8Nz0<|LomcF3 zqb=IcNYrj~_?UIhiI@~==I)4^;5v$R)X3PxBpdwk_9ADC?LDsSbEd@`{gsR10SnFM zl;?ftz=AP~XXc@kR&XV(+rT)Q@&k;M)!+eua$K?zghr#Y?x6oknv7Cim}gV9v& literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/Point_Cd.gif b/gosa-core/include/pChart/Point_Cd.gif new file mode 100644 index 0000000000000000000000000000000000000000..814c64290b594d7eaf62f7195820ff5b6308a2e8 GIT binary patch literal 1020 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 literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/SmallGraph.php b/gosa-core/include/pChart/SmallGraph.php new file mode 100644 index 000000000..5e0aa797b --- /dev/null +++ b/gosa-core/include/pChart/SmallGraph.php @@ -0,0 +1,30 @@ +AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4,-3,2,-3,3,5,1,0,7),"Serie1"); + $DataSet->AddAllSeries(); + $DataSet->SetAbsciseLabelSerie(); + $DataSet->SetSerieName("January","Serie1"); + + // Initialise the graph + $Test = new pChart(100,30); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawFilledRoundedRectangle(2,2,98,28,2,230,230,230); + $Test->setGraphArea(5,5,95,25); + $Test->drawGraphArea(255,255,255); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,220,220,220,FALSE); + + // Draw the line graph + $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); + + // Finish the graph + $Test->Render("SmallGraph.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/SmallStacked.php b/gosa-core/include/pChart/SmallStacked.php new file mode 100644 index 000000000..a7dedb8fe --- /dev/null +++ b/gosa-core/include/pChart/SmallStacked.php @@ -0,0 +1,48 @@ +AddPoint(1,"Serie1"); + $DataSet->AddPoint(3,"Serie2"); + $DataSet->AddPoint(3,"Serie3"); + $DataSet->AddPoint("A#~1","Labels"); + $DataSet->AddAllSeries(); + $DataSet->RemoveSerie("Labels"); + $DataSet->SetAbsciseLabelSerie("Labels"); + $DataSet->SetSerieName("Alpha","Serie1"); + $DataSet->SetSerieName("Beta","Serie2"); + $DataSet->SetSerieName("Gama","Serie3"); + $DataSet->SetYAxisName("Test Marker"); + $DataSet->SetYAxisUnit("µm"); + + // Initialise the graph + $Test = new pChart(210,230); + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->setGraphArea(65,30,125,200); + $Test->drawFilledRoundedRectangle(7,7,203,223,5,240,240,240); + $Test->drawRoundedRectangle(5,5,205,225,5,230,230,230); + $Test->drawGraphArea(255,255,255,TRUE); + $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,150,150,150,TRUE,0,2,TRUE); + $Test->drawGrid(4,TRUE,230,230,230,50); + + // Draw the 0 line + $Test->setFontProperties("Fonts/tahoma.ttf",6); + $Test->drawTreshold(0,143,55,72,TRUE,TRUE); + + // Draw the bar graph + $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),50); + + // Finish the graph + $Test->setFontProperties("Fonts/tahoma.ttf",8); + $Test->drawLegend(135,150,$DataSet->GetDataDescription(),255,255,255); + $Test->setFontProperties("Fonts/tahoma.ttf",10); + $Test->drawTitle(0,22,"Sample size",50,50,50,210); + $Test->Render("SmallStacked.png"); +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/buildAll.cmd b/gosa-core/include/pChart/buildAll.cmd new file mode 100644 index 000000000..f22b1f749 --- /dev/null +++ b/gosa-core/include/pChart/buildAll.cmd @@ -0,0 +1,63 @@ +ECHO OFF +CLS +ECHO Processing all examples +ECHO. +ECHO [01/28] A simple line chart + php -q %~dp0Example1.php +ECHO [02/28] A cubic curve graph + php -q %~dp0Example2.php +ECHO [03/28] An overlayed bar graph + php -q %~dp0Example3.php +ECHO [04/28] Showing how to draw area + php -q %~dp0Example4.php +ECHO [05/28] A limits graph + php -q %~dp0Example5.php +ECHO [06/28] A simple filled line graph + php -q %~dp0Example6.php +ECHO [07/28] A filled cubic curve graph + php -q %~dp0Example7.php +ECHO [08/28] A radar graph + php -q %~dp0Example8.php +ECHO [09/28] Showing how to use labels + php -q %~dp0Example9.php +ECHO [10/28] A 3D exploded pie graph + php -q %~dp0Example10.php +ECHO [11/28] A true bar graph + php -q %~dp0Example12.php +ECHO [12/28] A 2D exploded pie graph + php -q %~dp0Example13.php +ECHO [13/28] A smooth flat pie graph + php -q %~dp0Example14.php +ECHO [14/28] Playing with line style and pictures inclusion + php -q %~dp0Example15.php +ECHO [15/28] Importing CSV data + php -q %~dp0Example16.php +ECHO [16/28] Playing with axis + php -q %~dp0Example17.php +ECHO [17/28] Missing values + php -q %~dp0Example18.php +ECHO [18/28] Error reporting + php -q %~dp0Example19.php +ECHO [19/28] Stacked bar graph + php -q %~dp0Example20.php +ECHO [20/28] Playing with background + php -q %~dp0Example21.php +ECHO [21/28] Customizing plot charts + php -q %~dp0Example22.php +ECHO [22/28] Playing with background - Bis + php -q %~dp0Example23.php +ECHO [23/28] X Versus Y chart + php -q %~dp0Example24.php +ECHO [24/28] Using shadows + php -q %~dp0Example25.php +ECHO [25/28] Two Y axis / shadow demonstration + php -q %~dp0Example26.php +ECHO [26/28] Naked and easy! + php -q %~dp0Naked.php +ECHO [27/28] Let's go fast, draw small! + php -q %~dp0SmallGraph.php +ECHO [28/28] A Small stacked chart + php -q %~dp0SmallStacked.php +ECHO. +ECHO Rendering complete! +PAUSE diff --git a/gosa-core/include/pChart/bulkdata.csv b/gosa-core/include/pChart/bulkdata.csv new file mode 100644 index 000000000..867233134 --- /dev/null +++ b/gosa-core/include/pChart/bulkdata.csv @@ -0,0 +1,20 @@ +1,0,1,0.5 +2,1.204119983,4,2 +3,4.294091292,9,4.5 +4,9.632959861,16,8 +5,17.47425011,25,12.5 +6,28.01344501,36,18 +7,41.40980396,49,24.5 +8,57.79775917,64,32 +9,77.29364326,81,40.5 +10,100,100,50 +11,126.0085149,121,60.5 +12,155.4020994,144,72 +13,188.2564265,169,84.5 +14,224.641095,196,98 +15,264.6205333,225,112.5 +16,308.2547156,256,128 +17,355.5997383,289,144.5 +18,406.7082917,324,162 +19,461.6300499,361,180.5 +20,520.4119983,400,200 diff --git a/gosa-core/include/pChart/datawithtitle.csv b/gosa-core/include/pChart/datawithtitle.csv new file mode 100644 index 000000000..9761949ef --- /dev/null +++ b/gosa-core/include/pChart/datawithtitle.csv @@ -0,0 +1,21 @@ +Zob,January,February,March +1,0,1,0.5 +2,1.204119983,4,2 +3,4.294091292,9,4.5 +4,9.632959861,16,8 +5,17.47425011,25,12.5 +6,28.01344501,36,18 +7,41.40980396,49,24.5 +8,57.79775917,64,32 +9,77.29364326,81,40.5 +10,100,100,50 +11,126.0085149,121,60.5 +12,155.4020994,144,72 +13,188.2564265,169,84.5 +14,224.641095,196,98 +15,264.6205333,225,112.5 +16,308.2547156,256,128 +17,355.5997383,289,144.5 +18,406.7082917,324,162 +19,461.6300499,361,180.5 +20,520.4119983,400,200 diff --git a/gosa-core/include/pChart/logo.png b/gosa-core/include/pChart/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8df1e4b4010e9bfe1389e633e6cdd62f829e72c2 GIT binary patch literal 3406 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 literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/pCache.class b/gosa-core/include/pChart/pCache.class new file mode 100644 index 000000000..454bbada9 --- /dev/null +++ b/gosa-core/include/pChart/pCache.class @@ -0,0 +1,119 @@ +. + + Class initialisation : + pCache($CacheFolder="Cache/") + Cache management : + IsInCache($Data) + GetFromCache($ID,$Data) + WriteToCache($ID,$Data,$Picture) + DeleteFromCache($ID,$Data) + ClearCache() + Inner functions : + GetHash($ID,$Data) + */ + + /* pCache class definition */ + class pCache + { + var $HashKey = ""; + var $CacheFolder = "Cache/"; + + /* Create the pCache object */ + function pCache($CacheFolder="Cache/") + { + $this->CacheFolder = $CacheFolder; + } + + /* This function is clearing the cache folder */ + function ClearCache() + { + if ($handle = opendir($this->CacheFolder)) + { + while (false !== ($file = readdir($handle))) + { + if ( $file != "." && $file != ".." ) + unlink($this->CacheFolder.$file); + } + closedir($handle); + } + } + + /* This function is checking if we have an offline version of this chart */ + function IsInCache($ID,$Data,$Hash="") + { + if ( $Hash == "" ) + $Hash = $this->GetHash($ID,$Data); + + if ( file_exists($this->CacheFolder.$Hash) ) + return(TRUE); + else + return(FALSE); + } + + /* This function is making a copy of drawn chart in the cache folder */ + function WriteToCache($ID,$Data,$Picture) + { + $Hash = $this->GetHash($ID,$Data); + $FileName = $this->CacheFolder.$Hash; + + imagepng($Picture->Picture,$FileName); + } + + /* This function is removing any cached copy of this chart */ + function DeleteFromCache($ID,$Data) + { + $Hash = $this->GetHash($ID,$Data); + $FileName = $this->CacheFolder.$Hash; + + if ( file_exists($FileName ) ) + unlink($FileName); + } + + /* This function is retrieving the cached picture if applicable */ + function GetFromCache($ID,$Data) + { + $Hash = $this->GetHash($ID,$Data); + if ( $this->IsInCache("","",$Hash ) ) + { + $FileName = $this->CacheFolder.$Hash; + + header('Content-type: image/png'); + @readfile($FileName); + exit(); + } + } + + /* This function is building the graph unique hash key */ + function GetHash($ID,$Data) + { + $mKey = "$ID"; + foreach($Data as $key => $Values) + { + $tKey = ""; + foreach($Values as $Serie => $Value) + $tKey = $tKey.$Serie.$Value; + $mKey = $mKey.md5($tKey); + } + return(md5($mKey)); + } + } +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/pChart.1.27d.rar b/gosa-core/include/pChart/pChart.1.27d.rar new file mode 100644 index 0000000000000000000000000000000000000000..3fa26d4492645ef01c16d5c87635491496d0d8d5 GIT binary patch literal 299684 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%0D1UII&qju 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 z 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
Lj_Cm>*bPl&IL2V|3_lCdPj732X?`kSV#gjRu^L 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�fC!o&>h76reGeyyrYT*f{vB3>v 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

1&`BgvnI(34$3kLA)H-ZE<2B{bl_cL)z{IC<=N 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

Jvuzel|OPzNUY<|WdW<Odf4PAUQ`%catJ8J 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
`p+fjc2= zuu&KgVX3nvCms(CJyY*KZ(BFjrNbyfR#v{R61W#U3lgqS+5P@j9xYW)X3HTZGB#Z) z282x4kG0I~}$V0xo2?p!=KE24e>Ib@q^c zM)*}J;tN~$E+e?)Kp%6i$mBkb{2Y?>5YO}=bcQc^w1s_!!(IUUj-VkAJ>m$>_>>?N z%sKn?wFwM!X}tF{gE7X0G>XJIK zeu0Umd@8fDmrxlLFH?>NMO6h1s_Pu6>4%xlm){@gk?gD|rWI*lpW{hg4M3J{joa|R zoUOf6X;)Yt<0rna#-udOj`niG-xH=Re z-Ymdo3s<{j!7;TQ8>$lJ&_t+5sS<}XS&b7ND%L*GT-ltj<3}mQORbJU*ZIPXlyNZ) z=8&5L`xBMkv%nZ}aj6~42B=Y|rwy=18kiKV01D4&xC{?!Q(RF|Qi*@iC=h6m1vR18S&Ds@C9!tB(1i-4swy*9Qx!pw z)b>aM57<%H(cp#I&+jp%&F6;AMw61Vha=asaWv56%;#~stE6zND3c!NdO7RJCT7~8 zbNnRR`1CbJy_{F-r@vsc`6fX>;K;vbYl4sH;`(B9?k;Sq&JNaGc2UgwHr(=yl0 zA>io8sL?HCQW$-hz$())+K96rKXtUmtRCj>q}(4T$Im0qpTK5@4#WY-$d3Mw8$fXSf>Y8?a{P zE6I!Mnp+`d7DPkHE5esVlsI8rNaj8$V(hdQ)|PEo(8CJ?+_a_yhBHsq%378%!4S=Iy-HYH1Z8f$Y3NA;FKLR?))^ASp^*Z zq!*beo}jGluIclKZL5A$Y0Tv;KR$D{Pa8TVG>ouF841wOE?LpCwA|pI^vK;XK2=1i zQx!(_m6apy05Z7R>?HHQ>TCzH?UPF9BDFYt8Fr&d+g^dQvfSqZ4;la71Fo#6*t6T_ zT!qtG&P_&CJhn~E0^T5ARidrLZg%e?m(daUJz)+hY;yN{xn^D$_R_VVⅇMqgI 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. + + Class initialisation : + pChart($XSize,$YSize) + Draw methods : + drawBackground($R,$G,$B) + drawRectangle($X1,$Y1,$X2,$Y2,$R,$G,$B) + drawFilledRectangle($X1,$Y1,$X2,$Y2,$R,$G,$B,$DrawBorder=TRUE,$Alpha=100) + drawRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,$R,$G,$B) + drawFilledRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,$R,$G,$B) + drawCircle($Xc,$Yc,$Height,$R,$G,$B,$Width=0) + drawFilledCircle($Xc,$Yc,$Height,$R,$G,$B,$Width=0) + drawEllipse($Xc,$Yc,$Height,$Width,$R,$G,$B) + drawFilledEllipse($Xc,$Yc,$Height,$Width,$R,$G,$B) + drawLine($X1,$Y1,$X2,$Y2,$R,$G,$B,$GraphFunction=FALSE) + drawDottedLine($X1,$Y1,$X2,$Y2,$DotSize,$R,$G,$B) + drawAlphaPixel($X,$Y,$Alpha,$R,$G,$B) + drawFromPNG($FileName,$X,$Y,$Alpha=100) + drawFromGIF($FileName,$X,$Y,$Alpha=100) + drawFromJPG($FileName,$X,$Y,$Alpha=100) + Graph setup methods : + addBorder($Width=3,$R=0,$G=0,$B=0) + clearScale() + clearShadow() + createColorGradientPalette($R1,$G1,$B1,$R2,$G2,$B2,$Shades) + drawGraphArea($R,$G,$B,$Stripe=FALSE) + drawScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1,$RightScale=FALSE) + drawRightScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1) + drawXYScale($Data,$DataDescription,$YSerieName,$XSerieName,$R,$G,$B,$WithMargin=0,$Angle=0,$Decimals=1) + drawGrid($LineWidth,$Mosaic=TRUE,$R=220,$G=220,$B=220,$Alpha=100) + drawLegend($XPos,$YPos,$DataDescription,$R,$G,$B,$Rs=-1,$Gs=-1,$Bs=-1,$Rt=0,$Gt=0,$Bt=0,$Border=FALSE) + drawPieLegend($XPos,$YPos,$Data,$DataDescription,$R,$G,$B) + drawTitle($XPos,$YPos,$Value,$R,$G,$B,$XPos2=-1,$YPos2=-1,$Shadow=FALSE) + drawTreshold($Value,$R,$G,$B,$ShowLabel=FALSE,$ShowOnRight=FALSE,$TickWidth=4,$FreeText=NULL) + drawArea($Data,$Serie1,$Serie2,$R,$G,$B,$Alpha = 50) + drawRadarAxis($Data,$DataDescription,$Mosaic=TRUE,$BorderOffset=10,$A_R=60,$A_G=60,$A_B=60,$S_R=200,$S_G=200,$S_B=200,$MaxValue=-1) + drawGraphAreaGradient($R,$G,$B,$Decay,$Target=TARGET_GRAPHAREA) + drawTextBox($X1,$Y1,$X2,$Y2,$Text,$Angle=0,$R=255,$G=255,$B=255,$Align=ALIGN_LEFT,$Shadow=TRUE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=100) + getLegendBoxSize($DataDescription) + loadColorPalette($FileName,$Delimiter=",") + reportWarnings($Interface="CLI") + setGraphArea($X1,$Y1,$X2,$Y2) + setLabel($Data,$DataDescription,$SerieName,$ValueName,$Caption,$R=210,$G=210,$B=210) + setColorPalette($ID,$R,$G,$B) + setCurrency($Currency) + setDateFormat($Format) + setFontProperties($FontName,$FontSize) + setLineStyle($Width=1,$DotSize=0) + setFixedScale($VMin,$VMax,$Divisions=5,$VXMin=0,$VXMin=0,$XDivisions=5) + setShadowProperties($XDistance=1,$YDistance=1,$R=60,$G=60,$B=60,$Alpha) + writeValues($Data,$DataDescription,$Series) + Graphs methods : + drawPlotGraph($Data,$DataDescription,$BigRadius=5,$SmallRadius=2,$R2=-1,$G2=-1,$B2=-1,$Shadow=FALSE) + drawXYPlotGraph($Data,$DataDescription,$YSerieName,$XSerieName,$PaletteID=0,$BigRadius=5,$SmallRadius=2,$R2=-1,$G2=-1,$B2=-1) + drawLineGraph($Data,$DataDescription,$SerieName="") + drawXYGraph($Data,$DataDescription,$YSerieName,$XSerieName,$PaletteID=0) + drawFilledLineGraph($Data,$DataDescription,$Alpha=100,$AroundZero=FALSE) + drawCubicCurve($Data,$DataDescription,$Accuracy=.1,$SerieName="") + drawFilledCubicCurve($Data,$DataDescription,$Accuracy=.1,$Alpha=100,$AroundZero=FALSE) + drawOverlayBarGraph($Data,$DataDescription,$Alpha=50) + drawBarGraph($Data,$DataDescription,$Shadow=FALSE) + drawStackedBarGraph($Data,$DataDescription,$Alpha=50,$Contiguous=FALSE) + drawLimitsGraph($Data,$DataDescription,$R=0,$G=0,$B=0) + drawRadar($Data,$DataDescription,$BorderOffset=10,$MaxValue=-1) + drawFilledRadar($Data,$DataDescription,$Alpha=50,$BorderOffset=10,$MaxValue=-1) + drawBasicPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$R=255,$G=255,$B=255,$Decimals=0) + drawFlatPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$SpliceDistance=0,$Decimals = 0) + drawFlatPieGraphWithShadow($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$SpliceDistance=0,$Decimals = 0) + drawPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$EnhanceColors=TRUE,$Skew=60,$SpliceHeight=20,$SpliceDistance=0,$Decimals=0) + Other methods : + setImageMap($Mode=TRUE,$GraphID="MyGraph") + getImageMap($MapName,$Flush=TRUE) + Render($FileName) + Stroke() + */ + + /* Declare some script wide constants */ + define("SCALE_NORMAL",1); + define("SCALE_ADDALL",2); + define("SCALE_START0",3); + define("SCALE_ADDALLSTART0",4); + define("PIE_PERCENTAGE", 1); + define("PIE_LABELS",2); + define("PIE_NOLABEL",3); + define("PIE_PERCENTAGE_LABEL", 4); + define("TARGET_GRAPHAREA",1); + define("TARGET_BACKGROUND",2); + define("ALIGN_TOP_LEFT",1); + define("ALIGN_TOP_CENTER",2); + define("ALIGN_TOP_RIGHT",3); + define("ALIGN_LEFT",4); + define("ALIGN_CENTER",5); + define("ALIGN_RIGHT",6); + define("ALIGN_BOTTOM_LEFT",7); + define("ALIGN_BOTTOM_CENTER",8); + define("ALIGN_BOTTOM_RIGHT",9); + + /* pChart class definition */ + class pChart + { + /* Palettes definition */ + var $Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46), + "1"=>array("R"=>224,"G"=>100,"B"=>46), + "2"=>array("R"=>224,"G"=>214,"B"=>46), + "3"=>array("R"=>46,"G"=>151,"B"=>224), + "4"=>array("R"=>176,"G"=>46,"B"=>224), + "5"=>array("R"=>224,"G"=>46,"B"=>117), + "6"=>array("R"=>92,"G"=>224,"B"=>46), + "7"=>array("R"=>224,"G"=>176,"B"=>46)); + + /* Some static vars used in the class */ + var $XSize = NULL; + var $YSize = NULL; + var $Picture = NULL; + var $ImageMap = NULL; + + /* Error management */ + var $ErrorReporting = FALSE; + var $ErrorInterface = "CLI"; + var $Errors = NULL; + var $ErrorFontName = "Fonts/pf_arma_five.ttf"; + var $ErrorFontSize = 6; + + /* vars related to the graphing area */ + var $GArea_X1 = NULL; + var $GArea_Y1 = NULL; + var $GArea_X2 = NULL; + var $GArea_Y2 = NULL; + var $GAreaXOffset = NULL; + var $VMax = NULL; + var $VMin = NULL; + var $VXMax = NULL; + var $VXMin = NULL; + var $Divisions = NULL; + var $XDivisions = NULL; + var $DivisionHeight = NULL; + var $XDivisionHeight = NULL; + var $DivisionCount = NULL; + var $XDivisionCount = NULL; + var $DivisionRatio = NULL; + var $XDivisionRatio = NULL; + var $DivisionWidth = NULL; + var $DataCount = NULL; + var $Currency = "\$"; + + /* Text format related vars */ + var $FontName = NULL; + var $FontSize = NULL; + var $DateFormat = "d/m/Y"; + + /* Lines format related vars */ + var $LineWidth = 1; + var $LineDotSize = 0; + + /* Layer related vars */ + var $Layers = NULL; + + /* Set antialias quality : 0 is maximum, 100 minimum*/ + var $AntialiasQuality = 0; + + /* Shadow settings */ + var $ShadowActive = FALSE; + var $ShadowXDistance = 1; + var $ShadowYDistance = 1; + var $ShadowRColor = 60; + var $ShadowGColor = 60; + var $ShadowBColor = 60; + var $ShadowAlpha = 50; + var $ShadowBlur = 0; + + /* Image Map settings */ + var $BuildMap = FALSE; + var $MapFunction = NULL; + var $tmpFolder = "tmp/"; + var $MapID = NULL; + + /* This function create the background picture */ + function pChart($XSize,$YSize) + { + $this->XSize = $XSize; + $this->YSize = $YSize; + $this->Picture = imagecreatetruecolor($XSize,$YSize); + + $C_White =$this->AllocateColor($this->Picture,255,255,255); + imagefilledrectangle($this->Picture,0,0,$XSize,$YSize,$C_White); + imagecolortransparent($this->Picture,$C_White); + + $this->setFontProperties("tahoma.ttf",8); + } + + /* Set if warnings should be reported */ + function reportWarnings($Interface="CLI") + { + $this->ErrorReporting = TRUE; + $this->ErrorInterface = $Interface; + } + + /* Set the font properties */ + function setFontProperties($FontName,$FontSize) + { + $this->FontName = $FontName; + $this->FontSize = $FontSize; + } + + /* Set the shadow properties */ + function setShadowProperties($XDistance=1,$YDistance=1,$R=60,$G=60,$B=60,$Alpha=50,$Blur=0) + { + $this->ShadowActive = TRUE; + $this->ShadowXDistance = $XDistance; + $this->ShadowYDistance = $YDistance; + $this->ShadowRColor = $R; + $this->ShadowGColor = $G; + $this->ShadowBColor = $B; + $this->ShadowAlpha = $Alpha; + $this->ShadowBlur = $Blur; + } + + /* Remove shadow option */ + function clearShadow() + { + $this->ShadowActive = FALSE; + } + + /* Set Palette color */ + function setColorPalette($ID,$R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $this->Palette[$ID]["R"] = $R; + $this->Palette[$ID]["G"] = $G; + $this->Palette[$ID]["B"] = $B; + } + + /* Create a color palette shading from one color to another */ + function createColorGradientPalette($R1,$G1,$B1,$R2,$G2,$B2,$Shades) + { + $RFactor = ($R2-$R1)/$Shades; + $GFactor = ($G2-$G1)/$Shades; + $BFactor = ($B2-$B1)/$Shades; + + for($i=0;$i<=$Shades-1;$i++) + { + $this->Palette[$i]["R"] = $R1+$RFactor*$i; + $this->Palette[$i]["G"] = $G1+$GFactor*$i; + $this->Palette[$i]["B"] = $B1+$BFactor*$i; + } + } + + /* Load Color Palette from file */ + function loadColorPalette($FileName,$Delimiter=",") + { + $handle = @fopen($FileName,"r"); + $ColorID = 0; + if ($handle) + { + while (!feof($handle)) + { + $buffer = fgets($handle, 4096); + $buffer = str_replace(chr(10),"",$buffer); + $buffer = str_replace(chr(13),"",$buffer); + $Values = split($Delimiter,$buffer); + if ( count($Values) == 3 ) + { + $this->Palette[$ColorID]["R"] = $Values[0]; + $this->Palette[$ColorID]["G"] = $Values[1]; + $this->Palette[$ColorID]["B"] = $Values[2]; + $ColorID++; + } + } + } + } + + /* Set line style */ + function setLineStyle($Width=1,$DotSize=0) + { + $this->LineWidth = $Width; + $this->LineDotSize = $DotSize; + } + + /* Set currency symbol */ + function setCurrency($Currency) + { + $this->Currency = $Currency; + } + + /* Set the graph area location */ + function setGraphArea($X1,$Y1,$X2,$Y2) + { + $this->GArea_X1 = $X1; + $this->GArea_Y1 = $Y1; + $this->GArea_X2 = $X2; + $this->GArea_Y2 = $Y2; + } + + /* Prepare the graph area */ + function drawGraphArea($R,$G,$B,$Stripe=FALSE) + { + $this->drawFilledRectangle($this->GArea_X1,$this->GArea_Y1,$this->GArea_X2,$this->GArea_Y2,$R,$G,$B,FALSE); + $this->drawRectangle($this->GArea_X1,$this->GArea_Y1,$this->GArea_X2,$this->GArea_Y2,$R-40,$G-40,$B-40); + + if ( $Stripe ) + { + $R2 = $R-15; if ( $R2 < 0 ) { $R2 = 0; } + $G2 = $R-15; if ( $G2 < 0 ) { $G2 = 0; } + $B2 = $R-15; if ( $B2 < 0 ) { $B2 = 0; } + + $LineColor =$this->AllocateColor($this->Picture,$R2,$G2,$B2); + $SkewWidth = $this->GArea_Y2-$this->GArea_Y1-1; + + for($i=$this->GArea_X1-$SkewWidth;$i<=$this->GArea_X2;$i=$i+4) + { + $X1 = $i; $Y1 = $this->GArea_Y2; + $X2 = $i+$SkewWidth; $Y2 = $this->GArea_Y1; + + + if ( $X1 < $this->GArea_X1 ) + { $X1 = $this->GArea_X1; $Y1 = $this->GArea_Y1 + $X2 - $this->GArea_X1 + 1; } + + if ( $X2 >= $this->GArea_X2 ) + { $Y2 = $this->GArea_Y1 + $X2 - $this->GArea_X2 +1; $X2 = $this->GArea_X2 - 1; } +// * Fixed in 1.27 * { $X2 = $this->GArea_X2 - 1; $Y2 = $this->GArea_Y2 - ($this->GArea_X2 - $X1); } + + imageline($this->Picture,$X1,$Y1,$X2,$Y2+1,$LineColor); + } + } + } + + /* Allow you to clear the scale : used if drawing multiple charts */ + function clearScale() + { + $this->VMin = NULL; + $this->VMax = NULL; + $this->VXMin = NULL; + $this->VXMax = NULL; + $this->Divisions = NULL; + $this->XDivisions = NULL; } + + /* Allow you to fix the scale, use this to bypass the automatic scaling */ + function setFixedScale($VMin,$VMax,$Divisions=5,$VXMin=0,$VXMax=0,$XDivisions=5) + { + $this->VMin = $VMin; + $this->VMax = $VMax; + $this->Divisions = $Divisions; + + if ( !$VXMin == 0 ) + { + $this->VXMin = $VXMin; + $this->VXMax = $VXMax; + $this->XDivisions = $XDivisions; + } + } + + /* Wrapper to the drawScale() function allowing a second scale to be drawn */ + function drawRightScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1) + { + $this->drawScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks,$Angle,$Decimals,$WithMargin,$SkipLabels,TRUE); + } + + /* Compute and draw the scale */ + function drawScale($Data,$DataDescription,$ScaleMode,$R,$G,$B,$DrawTicks=TRUE,$Angle=0,$Decimals=1,$WithMargin=FALSE,$SkipLabels=1,$RightScale=FALSE) + { + /* Validate the Data and DataDescription array */ + $this->validateData("drawScale",$Data); + + $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); + + $this->drawLine($this->GArea_X1,$this->GArea_Y1,$this->GArea_X1,$this->GArea_Y2,$R,$G,$B); + $this->drawLine($this->GArea_X1,$this->GArea_Y2,$this->GArea_X2,$this->GArea_Y2,$R,$G,$B); + + if ( $this->VMin == NULL && $this->VMax == NULL) + { + if (isset($DataDescription["Values"][0])) + { + $this->VMin = $Data[0][$DataDescription["Values"][0]]; + $this->VMax = $Data[0][$DataDescription["Values"][0]]; + } + else { $this->VMin = 2147483647; $this->VMax = -2147483647; } + + /* Compute Min and Max values */ + if ( $ScaleMode == SCALE_NORMAL || $ScaleMode == SCALE_START0 ) + { + if ( $ScaleMode == SCALE_START0 ) { $this->VMin = 0; } + + foreach ( $Data as $Key => $Values ) + { + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if (isset($Data[$Key][$ColName])) + { + $Value = $Data[$Key][$ColName]; + + if ( is_numeric($Value) ) + { + if ( $this->VMax < $Value) { $this->VMax = $Value; } + if ( $this->VMin > $Value) { $this->VMin = $Value; } + } + } + } + } + } + elseif ( $ScaleMode == SCALE_ADDALL || $ScaleMode == SCALE_ADDALLSTART0 ) /* Experimental */ + { + if ( $ScaleMode == SCALE_ADDALLSTART0 ) { $this->VMin = 0; } + + foreach ( $Data as $Key => $Values ) + { + $Sum = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if (isset($Data[$Key][$ColName])) + { + $Value = $Data[$Key][$ColName]; + if ( is_numeric($Value) ) + $Sum += $Value; + } + } + if ( $this->VMax < $Sum) { $this->VMax = $Sum; } + if ( $this->VMin > $Sum) { $this->VMin = $Sum; } + } + } + + if ( $this->VMax > preg_replace('/\.[0-9]+/','',$this->VMax) ) + $this->VMax = preg_replace('/\.[0-9]+/','',$this->VMax)+1; + + /* If all values are the same */ + if ( $this->VMax == $this->VMin ) + { + if ( $this->VMax >= 0 ) { $this->VMax++; } + else { $this->VMin--; } + } + + $DataRange = $this->VMax - $this->VMin; + if ( $DataRange == 0 ) { $DataRange = .1; } + + /* Compute automatic scaling */ + $ScaleOk = FALSE; $Factor = 1; + $MinDivHeight = 25; $MaxDivs = ($this->GArea_Y2 - $this->GArea_Y1) / $MinDivHeight; + + if ( $this->VMin == 0 && $this->VMax == 0 ) + { $this->VMin = 0; $this->VMax = 2; $Scale = 1; $Divisions = 2;} + elseif ($MaxDivs > 1) + { + while(!$ScaleOk) + { + $Scale1 = ( $this->VMax - $this->VMin ) / $Factor; + $Scale2 = ( $this->VMax - $this->VMin ) / $Factor / 2; + $Scale4 = ( $this->VMax - $this->VMin ) / $Factor / 4; + + if ( $Scale1 > 1 && $Scale1 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale1); $Scale = 1;} + if ( $Scale2 > 1 && $Scale2 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale2); $Scale = 2;} + if (!$ScaleOk) + { + if ( $Scale2 > 1 ) { $Factor = $Factor * 10; } + if ( $Scale2 < 1 ) { $Factor = $Factor / 10; } + } + } + + if ( floor($this->VMax / $Scale / $Factor) != $this->VMax / $Scale / $Factor) + { + $GridID = floor ( $this->VMax / $Scale / $Factor) + 1; + $this->VMax = $GridID * $Scale * $Factor; + $Divisions++; + } + + if ( floor($this->VMin / $Scale / $Factor) != $this->VMin / $Scale / $Factor) + { + $GridID = floor( $this->VMin / $Scale / $Factor); + $this->VMin = $GridID * $Scale * $Factor; + $Divisions++; + } + } + else /* Can occurs for small graphs */ + $Scale = 1; + + if ( !isset($Divisions) ) + $Divisions = 2; + + if ($Scale == 1 && $Divisions%2 == 1) + $Divisions--; + } + else + $Divisions = $this->Divisions; + + $this->DivisionCount = $Divisions; + + $DataRange = $this->VMax - $this->VMin; + if ( $DataRange == 0 ) { $DataRange = .1; } + + $this->DivisionHeight = ( $this->GArea_Y2 - $this->GArea_Y1 ) / $Divisions; + $this->DivisionRatio = ( $this->GArea_Y2 - $this->GArea_Y1 ) / $DataRange; + + $this->GAreaXOffset = 0; + if ( count($Data) > 1 ) + { + if ( $WithMargin == FALSE ) + $this->DivisionWidth = ( $this->GArea_X2 - $this->GArea_X1 ) / (count($Data)-1); + else + { + $this->DivisionWidth = ( $this->GArea_X2 - $this->GArea_X1 ) / (count($Data)); + $this->GAreaXOffset = $this->DivisionWidth / 2; + } + } + else + { + $this->DivisionWidth = $this->GArea_X2 - $this->GArea_X1; + $this->GAreaXOffset = $this->DivisionWidth / 2; + } + + $this->DataCount = count($Data); + + if ( $DrawTicks == FALSE ) + return(0); + + $YPos = $this->GArea_Y2; $XMin = NULL; + for($i=1;$i<=$Divisions+1;$i++) + { + if ( $RightScale ) + $this->drawLine($this->GArea_X2,$YPos,$this->GArea_X2+5,$YPos,$R,$G,$B); + else + $this->drawLine($this->GArea_X1,$YPos,$this->GArea_X1-5,$YPos,$R,$G,$B); + + $Value = $this->VMin + ($i-1) * (( $this->VMax - $this->VMin ) / $Divisions); + $Value = round($Value * pow(10,$Decimals)) / pow(10,$Decimals); + if ( $DataDescription["Format"]["Y"] == "number" ) + $Value = $Value.$DataDescription["Unit"]["Y"]; + if ( $DataDescription["Format"]["Y"] == "time" ) + $Value = $this->ToTime($Value); + if ( $DataDescription["Format"]["Y"] == "date" ) + $Value = $this->ToDate($Value); + if ( $DataDescription["Format"]["Y"] == "metric" ) + $Value = $this->ToMetric($Value); + if ( $DataDescription["Format"]["Y"] == "currency" ) + $Value = $this->ToCurrency($Value); + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + + if ( $RightScale ) + { + imagettftext($this->Picture,$this->FontSize,0,$this->GArea_X2+10,$YPos+($this->FontSize/2),$C_TextColor,$this->FontName,$Value); + if ( $XMin < $this->GArea_X2+15+$TextWidth || $XMin == NULL ) { $XMin = $this->GArea_X2+15+$TextWidth; } + } + else + { + imagettftext($this->Picture,$this->FontSize,0,$this->GArea_X1-10-$TextWidth,$YPos+($this->FontSize/2),$C_TextColor,$this->FontName,$Value); + if ( $XMin > $this->GArea_X1-10-$TextWidth || $XMin == NULL ) { $XMin = $this->GArea_X1-10-$TextWidth; } + } + + $YPos = $YPos - $this->DivisionHeight; + } + + /* Write the Y Axis caption if set */ + if ( isset($DataDescription["Axis"]["Y"]) ) + { + $Position = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["Y"]); + $TextHeight = abs($Position[1])+abs($Position[3]); + $TextTop = (($this->GArea_Y2 - $this->GArea_Y1) / 2) + $this->GArea_Y1 + ($TextHeight/2); + + if ( $RightScale ) + imagettftext($this->Picture,$this->FontSize,90,$XMin+$this->FontSize,$TextTop,$C_TextColor,$this->FontName,$DataDescription["Axis"]["Y"]); + else + imagettftext($this->Picture,$this->FontSize,90,$XMin-$this->FontSize,$TextTop,$C_TextColor,$this->FontName,$DataDescription["Axis"]["Y"]); + } + + /* Horizontal Axis */ + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + $ID = 1; $YMax = NULL; + foreach ( $Data as $Key => $Values ) + { + if ( $ID % $SkipLabels == 0 ) + { + $this->drawLine(floor($XPos),$this->GArea_Y2,floor($XPos),$this->GArea_Y2+5,$R,$G,$B); + $Value = $Data[$Key][$DataDescription["Position"]]; + if ( $DataDescription["Format"]["X"] == "number" ) + $Value = $Value.$DataDescription["Unit"]["X"]; + if ( $DataDescription["Format"]["X"] == "time" ) + $Value = $this->ToTime($Value); + if ( $DataDescription["Format"]["X"] == "date" ) + $Value = $this->ToDate($Value); + if ( $DataDescription["Format"]["X"] == "metric" ) + $Value = $this->ToMetric($Value); + if ( $DataDescription["Format"]["X"] == "currency" ) + $Value = $this->ToCurrency($Value); + + $Position = imageftbbox($this->FontSize,$Angle,$this->FontName,$Value); + $TextWidth = abs($Position[2])+abs($Position[0]); + $TextHeight = abs($Position[1])+abs($Position[3]); + + if ( $Angle == 0 ) + { + $YPos = $this->GArea_Y2+18; + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)-floor($TextWidth/2),$YPos,$C_TextColor,$this->FontName,$Value); + } + else + { + $YPos = $this->GArea_Y2+10+$TextHeight; + if ( $Angle <= 90 ) + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)-$TextWidth+5,$YPos,$C_TextColor,$this->FontName,$Value); + else + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)+$TextWidth+5,$YPos,$C_TextColor,$this->FontName,$Value); + } + if ( $YMax < $YPos || $YMax == NULL ) { $YMax = $YPos; } + } + + $XPos = $XPos + $this->DivisionWidth; + $ID++; + } + + /* Write the X Axis caption if set */ + if ( isset($DataDescription["Axis"]["X"]) ) + { + $Position = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["X"]); + $TextWidth = abs($Position[2])+abs($Position[0]); + $TextLeft = (($this->GArea_X2 - $this->GArea_X1) / 2) + $this->GArea_X1 + ($TextWidth/2); + imagettftext($this->Picture,$this->FontSize,0,$TextLeft,$YMax+$this->FontSize+5,$C_TextColor,$this->FontName,$DataDescription["Axis"]["X"]); + } + } + + /* Compute and draw the scale for X/Y charts */ + function drawXYScale($Data,$DataDescription,$YSerieName,$XSerieName,$R,$G,$B,$WithMargin=0,$Angle=0,$Decimals=1) + { + /* Validate the Data and DataDescription array */ + $this->validateData("drawScale",$Data); + + $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); + + $this->drawLine($this->GArea_X1,$this->GArea_Y1,$this->GArea_X1,$this->GArea_Y2,$R,$G,$B); + $this->drawLine($this->GArea_X1,$this->GArea_Y2,$this->GArea_X2,$this->GArea_Y2,$R,$G,$B); + + /* Process Y scale */ + if ( $this->VMin == NULL && $this->VMax == NULL) + { + $this->VMin = $Data[0][$YSerieName]; + $this->VMax = $Data[0][$YSerieName]; + + foreach ( $Data as $Key => $Values ) + { + if (isset($Data[$Key][$YSerieName])) + { + $Value = $Data[$Key][$YSerieName]; + if ( $this->VMax < $Value) { $this->VMax = $Value; } + if ( $this->VMin > $Value) { $this->VMin = $Value; } + } + } + + if ( $this->VMax > preg_replace('/\.[0-9]+/','',$this->VMax) ) + $this->VMax = preg_replace('/\.[0-9]+/','',$this->VMax)+1; + + $DataRange = $this->VMax - $this->VMin; + if ( $DataRange == 0 ) { $DataRange = .1; } + + /* Compute automatic scaling */ + $ScaleOk = FALSE; $Factor = 1; + $MinDivHeight = 25; $MaxDivs = ($this->GArea_Y2 - $this->GArea_Y1) / $MinDivHeight; + + if ( $this->VMin == 0 && $this->VMax == 0 ) + { $this->VMin = 0; $this->VMax = 2; $Scale = 1; $Divisions = 2;} + elseif ($MaxDivs > 1) + { + while(!$ScaleOk) + { + $Scale1 = ( $this->VMax - $this->VMin ) / $Factor; + $Scale2 = ( $this->VMax - $this->VMin ) / $Factor / 2; + $Scale4 = ( $this->VMax - $this->VMin ) / $Factor / 4; + + if ( $Scale1 > 1 && $Scale1 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale1); $Scale = 1;} + if ( $Scale2 > 1 && $Scale2 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $Divisions = floor($Scale2); $Scale = 2;} + if (!$ScaleOk) + { + if ( $Scale2 > 1 ) { $Factor = $Factor * 10; } + if ( $Scale2 < 1 ) { $Factor = $Factor / 10; } + } + } + + if ( floor($this->VMax / $Scale / $Factor) != $this->VMax / $Scale / $Factor) + { + $GridID = floor ( $this->VMax / $Scale / $Factor) + 1; + $this->VMax = $GridID * $Scale * $Factor; + $Divisions++; + } + + if ( floor($this->VMin / $Scale / $Factor) != $this->VMin / $Scale / $Factor) + { + $GridID = floor( $this->VMin / $Scale / $Factor); + $this->VMin = $GridID * $Scale * $Factor; + $Divisions++; + } + } + else /* Can occurs for small graphs */ + $Scale = 1; + + if ( !isset($Divisions) ) + $Divisions = 2; + + if ( $this->isRealInt(($this->VMax-$this->VMin)/($Divisions-1))) + $Divisions--; + elseif ( $this->isRealInt(($this->VMax-$this->VMin)/($Divisions+1))) + $Divisions++; + } + else + $Divisions = $this->Divisions; + + $this->DivisionCount = $Divisions; + + $DataRange = $this->VMax - $this->VMin; + if ( $DataRange == 0 ) { $DataRange = .1; } + + $this->DivisionHeight = ( $this->GArea_Y2 - $this->GArea_Y1 ) / $Divisions; + $this->DivisionRatio = ( $this->GArea_Y2 - $this->GArea_Y1 ) / $DataRange; + + $YPos = $this->GArea_Y2; $XMin = NULL; + for($i=1;$i<=$Divisions+1;$i++) + { + $this->drawLine($this->GArea_X1,$YPos,$this->GArea_X1-5,$YPos,$R,$G,$B); + $Value = $this->VMin + ($i-1) * (( $this->VMax - $this->VMin ) / $Divisions); + $Value = round($Value * pow(10,$Decimals)) / pow(10,$Decimals); + if ( $DataDescription["Format"]["Y"] == "number" ) + $Value = $Value.$DataDescription["Unit"]["Y"]; + if ( $DataDescription["Format"]["Y"] == "time" ) + $Value = $this->ToTime($Value); + if ( $DataDescription["Format"]["Y"] == "date" ) + $Value = $this->ToDate($Value); + if ( $DataDescription["Format"]["Y"] == "metric" ) + $Value = $this->ToMetric($Value); + if ( $DataDescription["Format"]["Y"] == "currency" ) + $Value = $this->ToCurrency($Value); + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + imagettftext($this->Picture,$this->FontSize,0,$this->GArea_X1-10-$TextWidth,$YPos+($this->FontSize/2),$C_TextColor,$this->FontName,$Value); + + if ( $XMin > $this->GArea_X1-10-$TextWidth || $XMin == NULL ) { $XMin = $this->GArea_X1-10-$TextWidth; } + + $YPos = $YPos - $this->DivisionHeight; + } + + /* Process X scale */ + if ( $this->VXMin == NULL && $this->VXMax == NULL) + { + $this->VXMin = $Data[0][$XSerieName]; + $this->VXMax = $Data[0][$XSerieName]; + + foreach ( $Data as $Key => $Values ) + { + if (isset($Data[$Key][$XSerieName])) + { + $Value = $Data[$Key][$XSerieName]; + if ( $this->VXMax < $Value) { $this->VXMax = $Value; } + if ( $this->VXMin > $Value) { $this->VXMin = $Value; } + } + } + + if ( $this->VXMax > preg_replace('/\.[0-9]+/','',$this->VXMax) ) + $this->VXMax = preg_replace('/\.[0-9]+/','',$this->VXMax)+1; + + $DataRange = $this->VMax - $this->VMin; + if ( $DataRange == 0 ) { $DataRange = .1; } + + /* Compute automatic scaling */ + $ScaleOk = FALSE; $Factor = 1; + $MinDivWidth = 25; $MaxDivs = ($this->GArea_X2 - $this->GArea_X1) / $MinDivWidth; + + if ( $this->VXMin == 0 && $this->VXMax == 0 ) + { $this->VXMin = 0; $this->VXMax = 2; $Scale = 1; $XDivisions = 2;} + elseif ($MaxDivs > 1) + { + while(!$ScaleOk) + { + $Scale1 = ( $this->VXMax - $this->VXMin ) / $Factor; + $Scale2 = ( $this->VXMax - $this->VXMin ) / $Factor / 2; + $Scale4 = ( $this->VXMax - $this->VXMin ) / $Factor / 4; + + if ( $Scale1 > 1 && $Scale1 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $XDivisions = floor($Scale1); $Scale = 1;} + if ( $Scale2 > 1 && $Scale2 <= $MaxDivs && !$ScaleOk) { $ScaleOk = TRUE; $XDivisions = floor($Scale2); $Scale = 2;} + if (!$ScaleOk) + { + if ( $Scale2 > 1 ) { $Factor = $Factor * 10; } + if ( $Scale2 < 1 ) { $Factor = $Factor / 10; } + } + } + + if ( floor($this->VXMax / $Scale / $Factor) != $this->VXMax / $Scale / $Factor) + { + $GridID = floor ( $this->VXMax / $Scale / $Factor) + 1; + $this->VXMax = $GridID * $Scale * $Factor; + $XDivisions++; + } + + if ( floor($this->VXMin / $Scale / $Factor) != $this->VXMin / $Scale / $Factor) + { + $GridID = floor( $this->VXMin / $Scale / $Factor); + $this->VXMin = $GridID * $Scale * $Factor; + $XDivisions++; + } + } + else /* Can occurs for small graphs */ + $Scale = 1; + + if ( !isset($XDivisions) ) + $XDivisions = 2; + + if ( $this->isRealInt(($this->VXMax-$this->VXMin)/($XDivisions-1))) + $XDivisions--; + elseif ( $this->isRealInt(($this->VXMax-$this->VXMin)/($XDivisions+1))) + $XDivisions++; + } + else + $XDivisions = $this->XDivisions; + + $this->XDivisionCount = $Divisions; + $this->DataCount = $Divisions + 2; + + $XDataRange = $this->VXMax - $this->VXMin; + if ( $XDataRange == 0 ) { $XDataRange = .1; } + + $this->DivisionWidth = ( $this->GArea_X2 - $this->GArea_X1 ) / $XDivisions; + $this->XDivisionRatio = ( $this->GArea_X2 - $this->GArea_X1 ) / $XDataRange; + + $XPos = $this->GArea_X1; $YMax = NULL; + for($i=1;$i<=$XDivisions+1;$i++) + { + $this->drawLine($XPos,$this->GArea_Y2,$XPos,$this->GArea_Y2+5,$R,$G,$B); + + $Value = $this->VXMin + ($i-1) * (( $this->VXMax - $this->VXMin ) / $XDivisions); + $Value = round($Value * pow(10,$Decimals)) / pow(10,$Decimals); + if ( $DataDescription["Format"]["Y"] == "number" ) + $Value = $Value.$DataDescription["Unit"]["Y"]; + if ( $DataDescription["Format"]["Y"] == "time" ) + $Value = $this->ToTime($Value); + if ( $DataDescription["Format"]["Y"] == "date" ) + $Value = $this->ToDate($Value); + if ( $DataDescription["Format"]["Y"] == "metric" ) + $Value = $this->ToMetric($Value); + if ( $DataDescription["Format"]["Y"] == "currency" ) + $Value = $this->ToCurrency($Value); + + $Position = imageftbbox($this->FontSize,$Angle,$this->FontName,$Value); + $TextWidth = abs($Position[2])+abs($Position[0]); + $TextHeight = abs($Position[1])+abs($Position[3]); + + if ( $Angle == 0 ) + { + $YPos = $this->GArea_Y2+18; + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)-floor($TextWidth/2),$YPos,$C_TextColor,$this->FontName,$Value); + } + else + { + $YPos = $this->GArea_Y2+10+$TextHeight; + if ( $Angle <= 90 ) + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)-$TextWidth+5,$YPos,$C_TextColor,$this->FontName,$Value); + else + imagettftext($this->Picture,$this->FontSize,$Angle,floor($XPos)+$TextWidth+5,$YPos,$C_TextColor,$this->FontName,$Value); + } + + if ( $YMax < $YPos || $YMax == NULL ) { $YMax = $YPos; } + + $XPos = $XPos + $this->DivisionWidth; + } + + /* Write the Y Axis caption if set */ + if ( isset($DataDescription["Axis"]["Y"]) ) + { + $Position = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["Y"]); + $TextHeight = abs($Position[1])+abs($Position[3]); + $TextTop = (($this->GArea_Y2 - $this->GArea_Y1) / 2) + $this->GArea_Y1 + ($TextHeight/2); + imagettftext($this->Picture,$this->FontSize,90,$XMin-$this->FontSize,$TextTop,$C_TextColor,$this->FontName,$DataDescription["Axis"]["Y"]); + } + + /* Write the X Axis caption if set */ + if ( isset($DataDescription["Axis"]["X"]) ) + { + $Position = imageftbbox($this->FontSize,90,$this->FontName,$DataDescription["Axis"]["X"]); + $TextWidth = abs($Position[2])+abs($Position[0]); + $TextLeft = (($this->GArea_X2 - $this->GArea_X1) / 2) + $this->GArea_X1 + ($TextWidth/2); + imagettftext($this->Picture,$this->FontSize,0,$TextLeft,$YMax+$this->FontSize+5,$C_TextColor,$this->FontName,$DataDescription["Axis"]["X"]); + } + } + + /* Compute and draw the scale */ + function drawGrid($LineWidth,$Mosaic=TRUE,$R=220,$G=220,$B=220,$Alpha=100) + { + /* Draw mosaic */ + if ( $Mosaic ) + { + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White =$this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $C_Rectangle =$this->AllocateColor($this->Layers[0],250,250,250); + + $YPos = $LayerHeight; //$this->GArea_Y2-1; + $LastY = $YPos; + for($i=0;$i<=$this->DivisionCount;$i++) + { + $LastY = $YPos; + $YPos = $YPos - $this->DivisionHeight; + + if ( $YPos <= 0 ) { $YPos = 1; } + + if ( $i % 2 == 0 ) + { + imagefilledrectangle($this->Layers[0],1,$YPos,$LayerWidth-1,$LastY,$C_Rectangle); + } + } + imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + } + + /* Horizontal lines */ + $YPos = $this->GArea_Y2 - $this->DivisionHeight; + for($i=1;$i<=$this->DivisionCount;$i++) + { + if ( $YPos > $this->GArea_Y1 && $YPos < $this->GArea_Y2 ) + $this->drawDottedLine($this->GArea_X1,$YPos,$this->GArea_X2,$YPos,$LineWidth,$R,$G,$B); + + $YPos = $YPos - $this->DivisionHeight; + } + + /* Vertical lines */ + if ( $this->GAreaXOffset == 0 ) + { $XPos = $this->GArea_X1 + $this->DivisionWidth + $this->GAreaXOffset; $ColCount = $this->DataCount-2; } + else + { $XPos = $this->GArea_X1 + $this->GAreaXOffset; $ColCount = floor( ($this->GArea_X2 - $this->GArea_X1) / $this->DivisionWidth ); } + + for($i=1;$i<=$ColCount;$i++) + { + if ( $XPos > $this->GArea_X1 && $XPos < $this->GArea_X2 ) + $this->drawDottedLine(floor($XPos),$this->GArea_Y1,floor($XPos),$this->GArea_Y2,$LineWidth,$R,$G,$B); + $XPos = $XPos + $this->DivisionWidth; + } + } + + /* retrieve the legends size */ + function getLegendBoxSize($DataDescription) + { + if ( !isset($DataDescription["Description"]) ) + return(-1); + + /* <-10->[8]<-4->Text<-10-> */ + $MaxWidth = 0; $MaxHeight = 8; + foreach($DataDescription["Description"] as $Key => $Value) + { + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = $Position[1]-$Position[7]; + if ( $TextWidth > $MaxWidth) { $MaxWidth = $TextWidth; } + $MaxHeight = $MaxHeight + $TextHeight + 4; + } + $MaxHeight = $MaxHeight - 3; + $MaxWidth = $MaxWidth + 32; + + return(array($MaxWidth,$MaxHeight)); + } + + /* Draw the data legends */ + function drawLegend($XPos,$YPos,$DataDescription,$R,$G,$B,$Rs=-1,$Gs=-1,$Bs=-1,$Rt=0,$Gt=0,$Bt=0,$Border=TRUE) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawLegend",$DataDescription); + + if ( !isset($DataDescription["Description"]) ) + return(-1); + + $C_TextColor =$this->AllocateColor($this->Picture,$Rt,$Gt,$Bt); + + /* <-10->[8]<-4->Text<-10-> */ + $MaxWidth = 0; $MaxHeight = 8; + foreach($DataDescription["Description"] as $Key => $Value) + { + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = $Position[1]-$Position[7]; + if ( $TextWidth > $MaxWidth) { $MaxWidth = $TextWidth; } + $MaxHeight = $MaxHeight + $TextHeight + 4; + } + $MaxHeight = $MaxHeight - 5; + $MaxWidth = $MaxWidth + 32; + + if ( $Rs == -1 || $Gs == -1 || $Bs == -1 ) + { $Rs = $R-30; $Gs = $G-30; $Bs = $B-30; } + + if ( $Border ) + { + $this->drawFilledRoundedRectangle($XPos+1,$YPos+1,$XPos+$MaxWidth+1,$YPos+$MaxHeight+1,5,$Rs,$Gs,$Bs); + $this->drawFilledRoundedRectangle($XPos,$YPos,$XPos+$MaxWidth,$YPos+$MaxHeight,5,$R,$G,$B); + } + + $YOffset = 4 + $this->FontSize; $ID = 0; + foreach($DataDescription["Description"] as $Key => $Value) + { + $this->drawFilledRoundedRectangle($XPos+10,$YPos+$YOffset-4,$XPos+14,$YPos+$YOffset-4,2,$this->Palette[$ID]["R"],$this->Palette[$ID]["G"],$this->Palette[$ID]["B"]); + imagettftext($this->Picture,$this->FontSize,0,$XPos+22,$YPos+$YOffset,$C_TextColor,$this->FontName,$Value); + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextHeight = $Position[1]-$Position[7]; + + $YOffset = $YOffset + $TextHeight + 4; + $ID++; + } + } + + /* Draw the data legends */ + function drawPieLegend($XPos,$YPos,$Data,$DataDescription,$R,$G,$B) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawPieLegend",$DataDescription,FALSE); + $this->validateData("drawPieLegend",$Data); + + if ( !isset($DataDescription["Position"]) ) + return(-1); + + $C_TextColor =$this->AllocateColor($this->Picture,0,0,0); + + /* <-10->[8]<-4->Text<-10-> */ + $MaxWidth = 0; $MaxHeight = 8; + foreach($Data as $Key => $Value) + { + $Value2 = $Value[$DataDescription["Position"]]; + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value2); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = $Position[1]-$Position[7]; + if ( $TextWidth > $MaxWidth) { $MaxWidth = $TextWidth; } + + $MaxHeight = $MaxHeight + $TextHeight + 4; + } + $MaxHeight = $MaxHeight - 3; + $MaxWidth = $MaxWidth + 32; + + $this->drawFilledRoundedRectangle($XPos+1,$YPos+1,$XPos+$MaxWidth+1,$YPos+$MaxHeight+1,5,$R-30,$G-30,$B-30); + $this->drawFilledRoundedRectangle($XPos,$YPos,$XPos+$MaxWidth,$YPos+$MaxHeight,5,$R,$G,$B); + + $YOffset = 4 + $this->FontSize; $ID = 0; + foreach($Data as $Key => $Value) + { + $Value2 = $Value[$DataDescription["Position"]]; + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value2); + $TextHeight = $Position[1]-$Position[7]; + $this->drawFilledRectangle($XPos+10,$YPos+$YOffset-6,$XPos+14,$YPos+$YOffset-2,$this->Palette[$ID]["R"],$this->Palette[$ID]["G"],$this->Palette[$ID]["B"]); + + imagettftext($this->Picture,$this->FontSize,0,$XPos+22,$YPos+$YOffset,$C_TextColor,$this->FontName,$Value2); + $YOffset = $YOffset + $TextHeight + 4; + $ID++; + } + } + + /* Draw the graph title */ + function drawTitle($XPos,$YPos,$Value,$R,$G,$B,$XPos2=-1,$YPos2=-1,$Shadow=FALSE) + { + $C_TextColor = $this->AllocateColor($this->Picture,$R,$G,$B); + + if ( $XPos2 != -1 ) + { + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + $XPos = floor(( $XPos2 - $XPos - $TextWidth ) / 2 ) + $XPos; + } + + if ( $YPos2 != -1 ) + { + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Value); + $TextHeight = $Position[5]-$Position[3]; + $YPos = floor(( $YPos2 - $YPos - $TextHeight ) / 2 ) + $YPos; + } + + if ( $Shadow ) + { + $C_ShadowColor = $this->AllocateColor($this->Picture,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor); + imagettftext($this->Picture,$this->FontSize,0,$XPos+$this->ShadowXDistance,$YPos+$this->ShadowYDistance,$C_ShadowColor,$this->FontName,$Value); + } + + imagettftext($this->Picture,$this->FontSize,0,$XPos,$YPos,$C_TextColor,$this->FontName,$Value); + } + + /* Draw a text box with text align & alpha properties */ + function drawTextBox($X1,$Y1,$X2,$Y2,$Text,$Angle=0,$R=255,$G=255,$B=255,$Align=ALIGN_LEFT,$Shadow=TRUE,$BgR=-1,$BgG=-1,$BgB=-1,$Alpha=100) + { + $Position = imageftbbox($this->FontSize,$Angle,$this->FontName,$Text); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = $Position[5]-$Position[3]; + $AreaWidth = $X2 - $X1; + $AreaHeight = $Y2 - $Y1; + + if ( $BgR != -1 && $BgG != -1 && $BgB != -1 ) + $this->drawFilledRectangle($X1,$Y1,$X2,$Y2,$BgR,$BgG,$BgB,FALSE,$Alpha); + + if ( $Align == ALIGN_TOP_LEFT ) { $X = $X1+1; $Y = $Y1+$this->FontSize+1; } + if ( $Align == ALIGN_TOP_CENTER ) { $X = $X1+($AreaWidth/2)-($TextWidth/2); $Y = $Y1+$this->FontSize+1; } + if ( $Align == ALIGN_TOP_RIGHT ) { $X = $X2-$TextWidth-1; $Y = $Y1+$this->FontSize+1; } + if ( $Align == ALIGN_LEFT ) { $X = $X1+1; $Y = $Y1+($AreaHeight/2)-($TextHeight/2); } + if ( $Align == ALIGN_CENTER ) { $X = $X1+($AreaWidth/2)-($TextWidth/2); $Y = $Y1+($AreaHeight/2)-($TextHeight/2); } + if ( $Align == ALIGN_RIGHT ) { $X = $X2-$TextWidth-1; $Y = $Y1+($AreaHeight/2)-($TextHeight/2); } + if ( $Align == ALIGN_BOTTOM_LEFT ) { $X = $X1+1; $Y = $Y2-1; } + if ( $Align == ALIGN_BOTTOM_CENTER ) { $X = $X1+($AreaWidth/2)-($TextWidth/2); $Y = $Y2-1; } + if ( $Align == ALIGN_BOTTOM_RIGHT ) { $X = $X2-$TextWidth-1; $Y = $Y2-1; } + + $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); + $C_ShadowColor =$this->AllocateColor($this->Picture,0,0,0); + if ( $Shadow ) + imagettftext($this->Picture,$this->FontSize,$Angle,$X+1,$Y+1,$C_ShadowColor,$this->FontName,$Text); + + imagettftext($this->Picture,$this->FontSize,$Angle,$X,$Y,$C_TextColor,$this->FontName,$Text); + } + + /* Compute and draw the scale */ + function drawTreshold($Value,$R,$G,$B,$ShowLabel=FALSE,$ShowOnRight=FALSE,$TickWidth=4,$FreeText=NULL) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_TextColor =$this->AllocateColor($this->Picture,$R,$G,$B); + $Y = $this->GArea_Y2 - ($Value - $this->VMin) * $this->DivisionRatio; + + if ( $Y <= $this->GArea_Y1 || $Y >= $this->GArea_Y2 ) + return(-1); + + if ( $TickWidth == 0 ) + $this->drawLine($this->GArea_X1,$Y,$this->GArea_X2,$Y,$R,$G,$B); + else + $this->drawDottedLine($this->GArea_X1,$Y,$this->GArea_X2,$Y,$TickWidth,$R,$G,$B); + + if ( $ShowLabel ) + { + if ( $FreeText == NULL ) + { $Label = $Value; } else { $Label = $FreeText; } + + if ( $ShowOnRight ) + imagettftext($this->Picture,$this->FontSize,0,$this->GArea_X2+2,$Y+($this->FontSize/2),$C_TextColor,$this->FontName,$Label); + else + imagettftext($this->Picture,$this->FontSize,0,$this->GArea_X1+2,$Y-($this->FontSize/2),$C_TextColor,$this->FontName,$Label); + } + } + + /* This function put a label on a specific point */ + function setLabel($Data,$DataDescription,$SerieName,$ValueName,$Caption,$R=210,$G=210,$B=210) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("setLabel",$DataDescription); + $this->validateData("setLabel",$Data); + $ShadowFactor = 100; + $C_Label =$this->AllocateColor($this->Picture,$R,$G,$B); + $C_Shadow =$this->AllocateColor($this->Picture,$R-$ShadowFactor,$G-$ShadowFactor,$B-$ShadowFactor); + $C_TextColor =$this->AllocateColor($this->Picture,0,0,0); + + $Cp = 0; $Found = FALSE; + foreach ( $Data as $Key => $Value ) + { + if ( $Data[$Key][$DataDescription["Position"]] == $ValueName ) + { $NumericalValue = $Data[$Key][$SerieName]; $Found = TRUE; } + if ( !$Found ) + $Cp++; + } + + $XPos = $this->GArea_X1 + $this->GAreaXOffset + ( $this->DivisionWidth * $Cp ) + 2; + $YPos = $this->GArea_Y2 - ($NumericalValue - $this->VMin) * $this->DivisionRatio; + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Caption); + $TextHeight = $Position[3] - $Position[5]; + $TextWidth = $Position[2]-$Position[0] + 2; + $TextOffset = floor($TextHeight/2); + + // Shadow + $Poly = array($XPos+1,$YPos+1,$XPos + 9,$YPos - $TextOffset,$XPos + 8,$YPos + $TextOffset + 2); + imagefilledpolygon($this->Picture,$Poly,3,$C_Shadow); + $this->drawLine($XPos,$YPos+1,$XPos + 9,$YPos - $TextOffset - .2,$R-$ShadowFactor,$G-$ShadowFactor,$B-$ShadowFactor); + $this->drawLine($XPos,$YPos+1,$XPos + 9,$YPos + $TextOffset + 2.2,$R-$ShadowFactor,$G-$ShadowFactor,$B-$ShadowFactor); + $this->drawFilledRectangle($XPos + 9,$YPos - $TextOffset-.2,$XPos + 13 + $TextWidth,$YPos + $TextOffset + 2.2,$R-$ShadowFactor,$G-$ShadowFactor,$B-$ShadowFactor); + + // Label background + $Poly = array($XPos,$YPos,$XPos + 8,$YPos - $TextOffset - 1,$XPos + 8,$YPos + $TextOffset + 1); + imagefilledpolygon($this->Picture,$Poly,3,$C_Label); + $this->drawLine($XPos-1,$YPos,$XPos + 8,$YPos - $TextOffset - 1.2,$R,$G,$B); + $this->drawLine($XPos-1,$YPos,$XPos + 8,$YPos + $TextOffset + 1.2,$R,$G,$B); + $this->drawFilledRectangle($XPos + 8,$YPos - $TextOffset - 1.2,$XPos + 12 + $TextWidth,$YPos + $TextOffset + 1.2,$R,$G,$B); + + imagettftext($this->Picture,$this->FontSize,0,$XPos + 10,$YPos + $TextOffset,$C_TextColor,$this->FontName,$Caption); + } + + /* This function draw a plot graph */ + function drawPlotGraph($Data,$DataDescription,$BigRadius=5,$SmallRadius=2,$R2=-1,$G2=-1,$B2=-1,$Shadow=FALSE) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawPlotGraph",$DataDescription); + $this->validateData("drawPlotGraph",$Data); + + $GraphID = 0; + $Ro = $R2; $Go = $G2; $Bo = $B2; + + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $R = $this->Palette[$ColorID]["R"]; + $G = $this->Palette[$ColorID]["G"]; + $B = $this->Palette[$ColorID]["B"]; + $R2 = $Ro; $G2 = $Go; $B2 = $Bo; + + if ( isset($DataDescription["Symbol"][$ColName]) ) + { + $Is_Alpha = ((ord ( file_get_contents ($DataDescription["Symbol"][$ColName], false, null, 25, 1)) & 6) & 4) == 4; + + $Infos = getimagesize($DataDescription["Symbol"][$ColName]); + $ImageWidth = $Infos[0]; + $ImageHeight = $Infos[1]; + $Symbol = imagecreatefromgif($DataDescription["Symbol"][$ColName]); + } + + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + $Hsize = round($BigRadius/2); + $R3 = -1; $G3 = -1; $B3 = -1; + foreach ( $Data as $Key => $Values ) + { + $Value = $Data[$Key][$ColName]; + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + $this->addToImageMap($XPos-$Hsize,$YPos-$Hsize,$XPos+1+$Hsize,$YPos+$Hsize+1,$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"Plot"); + + if ( is_numeric($Value) ) + { + if ( !isset($DataDescription["Symbol"][$ColName]) ) + { + + if ( $Shadow ) + { + if ( $R3 !=-1 && $G3 !=-1 && $B3 !=-1 ) + $this->drawFilledCircle($XPos+2,$YPos+2,$BigRadius,$R3,$G3,$B3); + else + { + $R3 = $this->Palette[$ColorID]["R"]-20; if ( $R3 < 0 ) { $R3 = 0; } + $G3 = $this->Palette[$ColorID]["G"]-20; if ( $G3 < 0 ) { $G3 = 0; } + $B3 = $this->Palette[$ColorID]["B"]-20; if ( $B3 < 0 ) { $B3 = 0; } + $this->drawFilledCircle($XPos+2,$YPos+2,$BigRadius,$R3,$G3,$B3); + } + } + + $this->drawFilledCircle($XPos+1,$YPos+1,$BigRadius,$R,$G,$B); + + if ( $SmallRadius != 0 ) + { + if ( $R2 !=-1 && $G2 !=-1 && $B2 !=-1 ) + $this->drawFilledCircle($XPos+1,$YPos+1,$SmallRadius,$R2,$G2,$B2); + else + { + $R2 = $this->Palette[$ColorID]["R"]-15; if ( $R2 < 0 ) { $R2 = 0; } + $G2 = $this->Palette[$ColorID]["G"]-15; if ( $G2 < 0 ) { $G2 = 0; } + $B2 = $this->Palette[$ColorID]["B"]-15; if ( $B2 < 0 ) { $B2 = 0; } + + $this->drawFilledCircle($XPos+1,$YPos+1,$SmallRadius,$R2,$G2,$B2); + } + } + } + else + { + imagecopymerge($this->Picture,$Symbol,$XPos+1-$ImageWidth/2,$YPos+1-$ImageHeight/2,0,0,$ImageWidth,$ImageHeight,100); + } + } + + $XPos = $XPos + $this->DivisionWidth; + } + $GraphID++; + } + } + + /* This function draw a plot graph in an X/Y space */ + function drawXYPlotGraph($Data,$DataDescription,$YSerieName,$XSerieName,$PaletteID=0,$BigRadius=5,$SmallRadius=2,$R2=-1,$G2=-1,$B2=-1,$Shadow=TRUE) + { + $R = $this->Palette[$PaletteID]["R"]; + $G = $this->Palette[$PaletteID]["G"]; + $B = $this->Palette[$PaletteID]["B"]; + $R3 = -1; $G3 = -1; $B3 = -1; + + $YLast = -1; $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$YSerieName]) && isset($Data[$Key][$XSerieName]) ) + { + $X = $Data[$Key][$XSerieName]; + $Y = $Data[$Key][$YSerieName]; + + $Y = $this->GArea_Y2 - (($Y-$this->VMin) * $this->DivisionRatio); + $X = $this->GArea_X1 + (($X-$this->VXMin) * $this->XDivisionRatio); + + + if ( $Shadow ) + { + if ( $R3 !=-1 && $G3 !=-1 && $B3 !=-1 ) + $this->drawFilledCircle($X+2,$Y+2,$BigRadius,$R3,$G3,$B3); + else + { + $R3 = $this->Palette[$PaletteID]["R"]-20; if ( $R < 0 ) { $R = 0; } + $G3 = $this->Palette[$PaletteID]["G"]-20; if ( $G < 0 ) { $G = 0; } + $B3 = $this->Palette[$PaletteID]["B"]-20; if ( $B < 0 ) { $B = 0; } + $this->drawFilledCircle($X+2,$Y+2,$BigRadius,$R3,$G3,$B3); + } + } + + $this->drawFilledCircle($X+1,$Y+1,$BigRadius,$R,$G,$B); + + if ( $R2 !=-1 && $G2 !=-1 && $B2 !=-1 ) + $this->drawFilledCircle($X+1,$Y+1,$SmallRadius,$R2,$G2,$B2); + else + { + $R2 = $this->Palette[$PaletteID]["R"]+20; if ( $R > 255 ) { $R = 255; } + $G2 = $this->Palette[$PaletteID]["G"]+20; if ( $G > 255 ) { $G = 255; } + $B2 = $this->Palette[$PaletteID]["B"]+20; if ( $B > 255 ) { $B = 255; } + $this->drawFilledCircle($X+1,$Y+1,$SmallRadius,$R2,$G2,$B2); + } + } + } + + } + + /* This function draw an area between two series */ + function drawArea($Data,$Serie1,$Serie2,$R,$G,$B,$Alpha = 50) + { + /* Validate the Data and DataDescription array */ + $this->validateData("drawArea",$Data); + + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White =$this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $C_Graph =$this->AllocateColor($this->Layers[0],$R,$G,$B); + + $XPos = $this->GAreaXOffset; + $LastXPos = -1; + foreach ( $Data as $Key => $Values ) + { + $Value1 = $Data[$Key][$Serie1]; + $Value2 = $Data[$Key][$Serie2]; + $YPos1 = $LayerHeight - (($Value1-$this->VMin) * $this->DivisionRatio); + $YPos2 = $LayerHeight - (($Value2-$this->VMin) * $this->DivisionRatio); + + if ( $LastXPos != -1 ) + { + $Points = ""; + $Points[] = $LastXPos; $Points[] = $LastYPos1; + $Points[] = $LastXPos; $Points[] = $LastYPos2; + $Points[] = $XPos; $Points[] = $YPos2; + $Points[] = $XPos; $Points[] = $YPos1; + + imagefilledpolygon($this->Layers[0],$Points,4,$C_Graph); + } + + $LastYPos1 = $YPos1; + $LastYPos2 = $YPos2; + $LastXPos = $XPos; + + $XPos = $XPos + $this->DivisionWidth; + } + + imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + } + + + /* This function write the values of the specified series */ + function writeValues($Data,$DataDescription,$Series) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("writeValues",$DataDescription); + $this->validateData("writeValues",$Data); + + if ( !is_array($Series) ) { $Series = array($Series); } + + foreach($Series as $Key => $Serie) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $Serie ) { $ColorID = $ID; }; $ID++; } + + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$Serie]) && is_numeric($Data[$Key][$Serie])) + { + $Value = $Data[$Key][$Serie]; + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + + $Positions = imagettfbbox($this->FontSize,0,$this->FontName,$Value); + $Width = $Positions[2] - $Positions[6]; $XOffset = $XPos - ($Width/2); + $Height = $Positions[3] - $Positions[7]; $YOffset = $YPos - 4; + + $C_TextColor =$this->AllocateColor($this->Picture,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagettftext($this->Picture,$this->FontSize,0,$XOffset,$YOffset,$C_TextColor,$this->FontName,$Value); + } + $XPos = $XPos + $this->DivisionWidth; + } + + } + } + + /* This function draw a line graph */ + function drawLineGraph($Data,$DataDescription,$SerieName="") + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawLineGraph",$DataDescription); + $this->validateData("drawLineGraph",$Data); + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + if ( $SerieName == "" || $SerieName == $ColName ) + { + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + { + $Value = $Data[$Key][$ColName]; + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + $this->addToImageMap($XPos-3,$YPos-3,$XPos+3,$YPos+3,$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"Line"); + + if (!is_numeric($Value)) { $XLast = -1; } + if ( $XLast != -1 ) + $this->drawLine($XLast,$YLast,$XPos,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE); + + $XLast = $XPos; + $YLast = $YPos; + if (!is_numeric($Value)) { $XLast = -1; } + } + $XPos = $XPos + $this->DivisionWidth; + } + $GraphID++; + } + } + } + + /* This function draw a line graph */ + function drawXYGraph($Data,$DataDescription,$YSerieName,$XSerieName,$PaletteID=0) + { + $YLast = -1; $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$YSerieName]) && isset($Data[$Key][$XSerieName]) ) + { + $X = $Data[$Key][$XSerieName]; + $Y = $Data[$Key][$YSerieName]; + + $Y = $this->GArea_Y2 - (($Y-$this->VMin) * $this->DivisionRatio); + $X = $this->GArea_X1 + (($X-$this->VXMin) * $this->XDivisionRatio); + + if ($XLast != -1 && $YLast != -1) + { + $this->drawLine($XLast,$YLast,$X,$Y,$this->Palette[$PaletteID]["R"],$this->Palette[$PaletteID]["G"],$this->Palette[$PaletteID]["B"],TRUE); + } + + $XLast = $X; + $YLast = $Y; + } + } + } + + /* This function draw a cubic curve */ + function drawCubicCurve($Data,$DataDescription,$Accuracy=.1,$SerieName="") + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawCubicCurve",$DataDescription); + $this->validateData("drawCubicCurve",$Data); + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if ( $SerieName == "" || $SerieName == $ColName ) + { + $XIn = ""; $Yin = ""; $Yt = ""; $U = ""; + $XIn[0] = 0; $YIn[0] = 0; + + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $Index = 1; + $XLast = -1; $Missing = ""; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName]) ) + { + $Value = $Data[$Key][$ColName]; + $XIn[$Index] = $Index; + $YIn[$Index] = $Value; + if ( !is_numeric($Value) ) { $Missing[$Index] = TRUE; } + $Index++; + } + } + $Index--; + + $Yt[0] = 0; + $Yt[1] = 0; + $U[1] = 0; + for($i=2;$i<=$Index-1;$i++) + { + $Sig = ($XIn[$i] - $XIn[$i-1]) / ($XIn[$i+1] - $XIn[$i-1]); + $p = $Sig * $Yt[$i-1] + 2; + $Yt[$i] = ($Sig - 1) / $p; + $U[$i] = ($YIn[$i+1] - $YIn[$i]) / ($XIn[$i+1] - $XIn[$i]) - ($YIn[$i] - $YIn[$i-1]) / ($XIn[$i] - $XIn[$i-1]); + $U[$i] = (6 * $U[$i] / ($XIn[$i+1] - $XIn[$i-1]) - $Sig * $U[$i-1]) / $p; + } + + $qn = 0; + $un = 0; + $Yt[$Index] = ($un - $qn * $U[$Index-1]) / ($qn * $Yt[$Index-1] + 1); + + for($k=$Index-1;$k>=1;$k--) + $Yt[$k] = $Yt[$k] * $Yt[$k+1] + $U[$k]; + + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + for($X=1;$X<=$Index;$X=$X+$Accuracy) + { + $klo = 1; + $khi = $Index; + $k = $khi - $klo; + while($k > 1) + { + $k = $khi - $klo; + If ( $XIn[$k] >= $X ) + $khi = $k; + else + $klo = $k; + } + $klo = $khi - 1; + + $h = $XIn[$khi] - $XIn[$klo]; + $a = ($XIn[$khi] - $X) / $h; + $b = ($X - $XIn[$klo]) / $h; + $Value = $a * $YIn[$klo] + $b * $YIn[$khi] + (($a*$a*$a - $a) * $Yt[$klo] + ($b*$b*$b - $b) * $Yt[$khi]) * ($h*$h) / 6; + + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + + if ( $XLast != -1 && !isset($Missing[floor($X)]) && !isset($Missing[floor($X+1)]) ) + $this->drawLine($XLast,$YLast,$XPos,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE); + + $XLast = $XPos; + $YLast = $YPos; + $XPos = $XPos + $this->DivisionWidth * $Accuracy; + } + + // Add potentialy missing values + $XPos = $XPos - $this->DivisionWidth * $Accuracy; + if ( $XPos < ($this->GArea_X2 - $this->GAreaXOffset) ) + { + $YPos = $this->GArea_Y2 - (($YIn[$Index]-$this->VMin) * $this->DivisionRatio); + $this->drawLine($XLast,$YLast,$this->GArea_X2-$this->GAreaXOffset,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE); + } + + $GraphID++; + } + } + } + + /* This function draw a filled cubic curve */ + function drawFilledCubicCurve($Data,$DataDescription,$Accuracy=.1,$Alpha=100,$AroundZero=FALSE) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawFilledCubicCurve",$DataDescription); + $this->validateData("drawFilledCubicCurve",$Data); + + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + $YZero = $LayerHeight - ((0-$this->VMin) * $this->DivisionRatio); + if ( $YZero > $LayerHeight ) { $YZero = $LayerHeight; } + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $XIn = ""; $Yin = ""; $Yt = ""; $U = ""; + $XIn[0] = 0; $YIn[0] = 0; + + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $Index = 1; + $XLast = -1; $Missing = ""; + foreach ( $Data as $Key => $Values ) + { + $Value = $Data[$Key][$ColName]; + $XIn[$Index] = $Index; + $YIn[$Index] = $Value; + if ( !is_numeric($Value) ) { $Missing[$Index] = TRUE; } + $Index++; + } + $Index--; + + $Yt[0] = 0; + $Yt[1] = 0; + $U[1] = 0; + for($i=2;$i<=$Index-1;$i++) + { + $Sig = ($XIn[$i] - $XIn[$i-1]) / ($XIn[$i+1] - $XIn[$i-1]); + $p = $Sig * $Yt[$i-1] + 2; + $Yt[$i] = ($Sig - 1) / $p; + $U[$i] = ($YIn[$i+1] - $YIn[$i]) / ($XIn[$i+1] - $XIn[$i]) - ($YIn[$i] - $YIn[$i-1]) / ($XIn[$i] - $XIn[$i-1]); + $U[$i] = (6 * $U[$i] / ($XIn[$i+1] - $XIn[$i-1]) - $Sig * $U[$i-1]) / $p; + } + + $qn = 0; + $un = 0; + $Yt[$Index] = ($un - $qn * $U[$Index-1]) / ($qn * $Yt[$Index-1] + 1); + + for($k=$Index-1;$k>=1;$k--) + $Yt[$k] = $Yt[$k] * $Yt[$k+1] + $U[$k]; + + $Points = ""; + $Points[] = $this->GAreaXOffset; + $Points[] = $LayerHeight; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White =$this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $YLast = NULL; + $XPos = $this->GAreaXOffset; $PointsCount = 2; + for($X=1;$X<=$Index;$X=$X+$Accuracy) + { + $klo = 1; + $khi = $Index; + $k = $khi - $klo; + while($k > 1) + { + $k = $khi - $klo; + If ( $XIn[$k] >= $X ) + $khi = $k; + else + $klo = $k; + } + $klo = $khi - 1; + + $h = $XIn[$khi] - $XIn[$klo]; + $a = ($XIn[$khi] - $X) / $h; + $b = ($X - $XIn[$klo]) / $h; + $Value = $a * $YIn[$klo] + $b * $YIn[$khi] + (($a*$a*$a - $a) * $Yt[$klo] + ($b*$b*$b - $b) * $Yt[$khi]) * ($h*$h) / 6; + + $YPos = $LayerHeight - (($Value-$this->VMin) * $this->DivisionRatio); + + if ( $YLast != NULL && $AroundZero && !isset($Missing[floor($X)]) && !isset($Missing[floor($X+1)])) + { + $aPoints = ""; + $aPoints[] = $XLast; + $aPoints[] = $YLast; + $aPoints[] = $XPos; + $aPoints[] = $YPos; + $aPoints[] = $XPos; + $aPoints[] = $YZero; + $aPoints[] = $XLast; + $aPoints[] = $YZero; + + $C_Graph =$this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$aPoints,4,$C_Graph); + } + + if ( !isset($Missing[floor($X)]) || $YLast == NULL ) + { + $PointsCount++; + $Points[] = $XPos; + $Points[] = $YPos; + } + else + { + $PointsCount++; $Points[] = $XLast; $Points[] = $LayerHeight; + } + + $YLast = $YPos; $XLast = $XPos; + $XPos = $XPos + $this->DivisionWidth * $Accuracy; + } + + // Add potentialy missing values + $XPos = $XPos - $this->DivisionWidth * $Accuracy; + if ( $XPos < ($LayerWidth-$this->GAreaXOffset) ) + { + $YPos = $LayerHeight - (($YIn[$Index]-$this->VMin) * $this->DivisionRatio); + + if ( $YLast != NULL && $AroundZero ) + { + $aPoints = ""; + $aPoints[] = $XLast; + $aPoints[] = $YLast; + $aPoints[] = $LayerWidth-$this->GAreaXOffset; + $aPoints[] = $YPos; + $aPoints[] = $LayerWidth-$this->GAreaXOffset; + $aPoints[] = $YZero; + $aPoints[] = $XLast; + $aPoints[] = $YZero; + + $C_Graph =$this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$aPoints,4,$C_Graph); + } + + if ( $YIn[$klo] != "" && $YIn[$khi] != "" || $YLast == NULL ) + { + $PointsCount++; + $Points[] = $LayerWidth-$this->GAreaXOffset; + $Points[] = $YPos; + } + } + + $Points[] = $LayerWidth-$this->GAreaXOffset; + $Points[] = $LayerHeight; + + if ( !$AroundZero ) + { + $C_Graph =$this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$Points,$PointsCount,$C_Graph); + } + + imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + + $this->drawCubicCurve($Data,$DataDescription,$Accuracy,$ColName); + + $GraphID++; + } + } + + /* This function draw a filled line graph */ + function drawFilledLineGraph($Data,$DataDescription,$Alpha=100,$AroundZero=FALSE) + { + $Empty = -2147483647; + + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawFilledLineGraph",$DataDescription); + $this->validateData("drawFilledLineGraph",$Data); + + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $aPoints = ""; + $aPoints[] = $this->GAreaXOffset; + $aPoints[] = $LayerHeight; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White = $this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $XPos = $this->GAreaXOffset; + $XLast = -1; $PointsCount = 2; + $YZero = $LayerHeight - ((0-$this->VMin) * $this->DivisionRatio); + if ( $YZero > $LayerHeight ) { $YZero = $LayerHeight; } + + $YLast = $Empty; + foreach ( $Data as $Key => $Values ) + { + $Value = $Data[$Key][$ColName]; + $YPos = $LayerHeight - (($Value-$this->VMin) * $this->DivisionRatio); + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + $this->addToImageMap($XPos-3,$YPos-3,$XPos+3,$YPos+3,$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"FLine"); + + if ( !is_numeric($Value) ) + { + $PointsCount++; + $aPoints[] = $XLast; + $aPoints[] = $LayerHeight; + + $YLast = $Empty; + } + else + { + $PointsCount++; + if ( $YLast <> $Empty ) + { $aPoints[] = $XPos; $aPoints[] = $YPos; } + else + { $PointsCount++; $aPoints[] = $XPos; $aPoints[] = $LayerHeight; $aPoints[] = $XPos; $aPoints[] = $YPos; } + + if ($YLast <> $Empty && $AroundZero) + { + $Points = ""; + $Points[] = $XLast; $Points[] = $YLast; + $Points[] = $XPos; + $Points[] = $YPos; + $Points[] = $XPos; + $Points[] = $YZero; + $Points[] = $XLast; + $Points[] = $YZero; + + $C_Graph = $this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$Points,4,$C_Graph); + } + $YLast = $YPos; + } + + $XLast = $XPos; + $XPos = $XPos + $this->DivisionWidth; + } + $aPoints[] = $LayerWidth - $this->GAreaXOffset; + $aPoints[] = $LayerHeight; + + if ( $AroundZero == FALSE ) + { + $C_Graph = $this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$aPoints,$PointsCount,$C_Graph); + } + + imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + $GraphID++; + $this->drawLineGraph($Data,$DataDescription,$ColName); + } + } + + /* This function draw a bar graph */ + function drawOverlayBarGraph($Data,$DataDescription,$Alpha=50) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawOverlayBarGraph",$DataDescription); + $this->validateData("drawOverlayBarGraph",$Data); + + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $this->Layers[$GraphID] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White = $this->AllocateColor($this->Layers[$GraphID],255,255,255); + $C_Graph = $this->AllocateColor($this->Layers[$GraphID],$this->Palette[$GraphID]["R"],$this->Palette[$GraphID]["G"],$this->Palette[$GraphID]["B"]); + imagefilledrectangle($this->Layers[$GraphID],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[$GraphID],$C_White); + + $XWidth = $this->DivisionWidth / 4; + $XPos = $this->GAreaXOffset; + $YZero = $LayerHeight - ((0-$this->VMin) * $this->DivisionRatio); + $XLast = -1; $PointsCount = 2; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName]) ) + { + $Value = $Data[$Key][$ColName]; + if ( is_numeric($Value) ) + { + $YPos = $LayerHeight - (($Value-$this->VMin) * $this->DivisionRatio); + + imagefilledrectangle($this->Layers[$GraphID],$XPos-$XWidth,$YPos,$XPos+$XWidth,$YZero,$C_Graph); + + $X1 = floor($XPos - $XWidth + $this->GArea_X1); $Y1 = floor($YPos+$this->GArea_Y1) + .2; + $X2 = floor($XPos + $XWidth + $this->GArea_X1); $Y2 = $this->GArea_Y2 - ((0-$this->VMin) * $this->DivisionRatio); + if ( $X1 <= $this->GArea_X1 ) { $X1 = $this->GArea_X1 + 1; } + if ( $X2 >= $this->GArea_X2 ) { $X2 = $this->GArea_X2 - 1; } + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + $this->addToImageMap($X1,min($Y1,$Y2),$X2,max($Y1,$Y2),$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"oBar"); + + $this->drawLine($X1,$Y1,$X2,$Y1,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE); + } + } + $XPos = $XPos + $this->DivisionWidth; + } + + $GraphID++; + } + + for($i=0;$i<=($GraphID-1);$i++) + { + imagecopymerge($this->Picture,$this->Layers[$i],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[$i]); + } + } + + /* This function draw a bar graph */ + function drawBarGraph($Data,$DataDescription,$Shadow=FALSE,$Alpha=100) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawBarGraph",$DataDescription); + $this->validateData("drawBarGraph",$Data); + + $GraphID = 0; + $Series = count($DataDescription["Values"]); + $SeriesWidth = $this->DivisionWidth / ($Series+1); + $SerieXOffset = $this->DivisionWidth / 2 - $SeriesWidth / 2; + + $YZero = $this->GArea_Y2 - ((0-$this->VMin) * $this->DivisionRatio); + if ( $YZero > $this->GArea_Y2 ) { $YZero = $this->GArea_Y2; } + + $SerieID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $XPos = $this->GArea_X1 + $this->GAreaXOffset - $SerieXOffset + $SeriesWidth * $SerieID; + $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + { + if ( is_numeric($Data[$Key][$ColName]) ) + { + $Value = $Data[$Key][$ColName]; + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + { + $this->addToImageMap($XPos+1,min($YZero,$YPos),$XPos+$SeriesWidth-1,max($YZero,$YPos),$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"Bar"); + } + + if ( $Shadow && $Alpha == 100 ) + $this->drawRectangle($XPos+1,$YZero,$XPos+$SeriesWidth-1,$YPos,25,25,25,TRUE,$Alpha); + + $this->drawFilledRectangle($XPos+1,$YZero,$XPos+$SeriesWidth-1,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE,$Alpha); + } + } + $XPos = $XPos + $this->DivisionWidth; + } + $SerieID++; + } + } + + /* This function draw a stacked bar graph */ + function drawStackedBarGraph($Data,$DataDescription,$Alpha=50,$Contiguous=FALSE) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawBarGraph",$DataDescription); + $this->validateData("drawBarGraph",$Data); + + $GraphID = 0; + $Series = count($DataDescription["Values"]); + if ( $Contiguous ) + $SeriesWidth = $this->DivisionWidth; + else + $SeriesWidth = $this->DivisionWidth * .8; + + $YZero = $this->GArea_Y2 - ((0-$this->VMin) * $this->DivisionRatio); + if ( $YZero > $this->GArea_Y2 ) { $YZero = $this->GArea_Y2; } + + $SerieID = 0; $LastValue = ""; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $XPos = $this->GArea_X1 + $this->GAreaXOffset - $SeriesWidth / 2; + $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + { + if ( is_numeric($Data[$Key][$ColName]) ) + { + $Value = $Data[$Key][$ColName]; + + if ( isset($LastValue[$Key]) ) + { + $YPos = $this->GArea_Y2 - ((($Value+$LastValue[$Key])-$this->VMin) * $this->DivisionRatio); + $YBottom = $this->GArea_Y2 - (($LastValue[$Key]-$this->VMin) * $this->DivisionRatio); + $LastValue[$Key] += $Value; + } + else + { + $YPos = $this->GArea_Y2 - (($Value-$this->VMin) * $this->DivisionRatio); + $YBottom = $YZero; + $LastValue[$Key] = $Value; + } + + /* Save point into the image map if option activated */ + if ( $this->BuildMap ) + $this->addToImageMap($XPos+1,min($YBottom,$YPos),$XPos+$SeriesWidth-1,max($YBottom,$YPos),$DataDescription["Description"][$ColName],$Data[$Key][$ColName].$DataDescription["Unit"]["Y"],"sBar"); + + $this->drawFilledRectangle($XPos+1,$YBottom,$XPos+$SeriesWidth-1,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"],TRUE,$Alpha); + } + } + $XPos = $XPos + $this->DivisionWidth; + } + $SerieID++; + } + } + + /* This function draw a limits bar graphs */ + function drawLimitsGraph($Data,$DataDescription,$R=0,$G=0,$B=0) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawLimitsGraph",$DataDescription); + $this->validateData("drawLimitsGraph",$Data); + + $XWidth = $this->DivisionWidth / 4; + $XPos = $this->GArea_X1 + $this->GAreaXOffset; + + foreach ( $Data as $Key => $Values ) + { + $Min = $Data[$Key][$DataDescription["Values"][0]]; + $Max = $Data[$Key][$DataDescription["Values"][0]]; + $GraphID = 0; $MaxID = 0; $MinID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if ( isset($Data[$Key][$ColName]) ) + { + if ( $Data[$Key][$ColName] > $Max && is_numeric($Data[$Key][$ColName])) + { $Max = $Data[$Key][$ColName]; $MaxID = $GraphID; } + } + if ( isset($Data[$Key][$ColName]) && is_numeric($Data[$Key][$ColName])) + { + if ( $Data[$Key][$ColName] < $Min ) + { $Min = $Data[$Key][$ColName]; $MinID = $GraphID; } + $GraphID++; + } + } + + $YPos = $this->GArea_Y2 - (($Max-$this->VMin) * $this->DivisionRatio); + $X1 = floor($XPos - $XWidth); $Y1 = floor($YPos) - .2; + $X2 = floor($XPos + $XWidth); + if ( $X1 <= $this->GArea_X1 ) { $X1 = $this->GArea_X1 + 1; } + if ( $X2 >= $this->GArea_X2 ) { $X2 = $this->GArea_X2 - 1; } + + $YPos = $this->GArea_Y2 - (($Min-$this->VMin) * $this->DivisionRatio); + $Y2 = floor($YPos) + .2; + + $this->drawLine(floor($XPos)-.2,$Y1+1,floor($XPos)-.2,$Y2-1,$R,$G,$B,TRUE); + $this->drawLine(floor($XPos)+.2,$Y1+1,floor($XPos)+.2,$Y2-1,$R,$G,$B,TRUE); + $this->drawLine($X1,$Y1,$X2,$Y1,$this->Palette[$MaxID]["R"],$this->Palette[$MaxID]["G"],$this->Palette[$MaxID]["B"],FALSE); + $this->drawLine($X1,$Y2,$X2,$Y2,$this->Palette[$MinID]["R"],$this->Palette[$MinID]["G"],$this->Palette[$MinID]["B"],FALSE); + + $XPos = $XPos + $this->DivisionWidth; + } + } + + /* This function draw radar axis centered on the graph area */ + function drawRadarAxis($Data,$DataDescription,$Mosaic=TRUE,$BorderOffset=10,$A_R=60,$A_G=60,$A_B=60,$S_R=200,$S_G=200,$S_B=200,$MaxValue=-1) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawRadarAxis",$DataDescription); + $this->validateData("drawRadarAxis",$Data); + + $C_TextColor = $this->AllocateColor($this->Picture,$A_R,$A_G,$A_B); + + /* Draw radar axis */ + $Points = count($Data); + $Radius = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2 - $BorderOffset; + $XCenter = ( $this->GArea_X2 - $this->GArea_X1 ) / 2 + $this->GArea_X1; + $YCenter = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2 + $this->GArea_Y1; + + /* Search for the max value */ + if ( $MaxValue == -1 ) + { + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + if ( $Data[$Key][$ColName] > $MaxValue ) { $MaxValue = $Data[$Key][$ColName]; } + } + } + } + + /* Draw the mosaic */ + if ( $Mosaic ) + { + $RadiusScale = $Radius / $MaxValue; + for ( $t=1; $t<=$MaxValue-1; $t++) + { + $TRadius = $RadiusScale * $t; + $LastX1 = -1; + + for ( $i=0; $i<=$Points; $i++) + { + $Angle = -90 + $i * 360/$Points; + $X1 = cos($Angle * 3.1418 / 180 ) * $TRadius + $XCenter; + $Y1 = sin($Angle * 3.1418 / 180 ) * $TRadius + $YCenter; + $X2 = cos($Angle * 3.1418 / 180 ) * ($TRadius+$RadiusScale) + $XCenter; + $Y2 = sin($Angle * 3.1418 / 180 ) * ($TRadius+$RadiusScale) + $YCenter; + + if ( $t % 2 == 1 && $LastX1 != -1) + { + $Plots = ""; + $Plots[] = $X1; $Plots[] = $Y1; + $Plots[] = $X2; $Plots[] = $Y2; + $Plots[] = $LastX2; $Plots[] = $LastY2; + $Plots[] = $LastX1; $Plots[] = $LastY1; + + $C_Graph = $this->AllocateColor($this->Picture,250,250,250); + imagefilledpolygon($this->Picture,$Plots,(count($Plots)+1)/2,$C_Graph); + } + + $LastX1 = $X1; $LastY1= $Y1; + $LastX2 = $X2; $LastY2= $Y2; + } + } + } + + + /* Draw the spider web */ + for ( $t=1; $t<=$MaxValue; $t++) + { + $TRadius = ( $Radius / $MaxValue ) * $t; + $LastX = -1; + + for ( $i=0; $i<=$Points; $i++) + { + $Angle = -90 + $i * 360/$Points; + $X = cos($Angle * 3.1418 / 180 ) * $TRadius + $XCenter; + $Y = sin($Angle * 3.1418 / 180 ) * $TRadius + $YCenter; + + if ( $LastX != -1 ) + $this->drawDottedLine($LastX,$LastY,$X,$Y,4,$S_R,$S_G,$S_B); + + $LastX = $X; $LastY= $Y; + } + } + + /* Draw the axis */ + for ( $i=0; $i<=$Points; $i++) + { + $Angle = -90 + $i * 360/$Points; + $X = cos($Angle * 3.1418 / 180 ) * $Radius + $XCenter; + $Y = sin($Angle * 3.1418 / 180 ) * $Radius + $YCenter; + + $this->drawLine($XCenter,$YCenter,$X,$Y,$A_R,$A_G,$A_B); + + $XOffset = 0; $YOffset = 0; + if (isset($Data[$i][$DataDescription["Position"]])) + { + $Label = $Data[$i][$DataDescription["Position"]]; + + $Positions = imagettfbbox($this->FontSize,0,$this->FontName,$Label); + $Width = $Positions[2] - $Positions[6]; + $Height = $Positions[3] - $Positions[7]; + + if ( $Angle >= 0 && $Angle <= 90 ) + $YOffset = $Height; + + if ( $Angle > 90 && $Angle <= 180 ) + { $YOffset = $Height; $XOffset = -$Width; } + + if ( $Angle > 180 && $Angle <= 270 ) + { $XOffset = -$Width; } + + imagettftext($this->Picture,$this->FontSize,0,$X+$XOffset,$Y+$YOffset,$C_TextColor,$this->FontName,$Label); + } + } + + /* Write the values */ + for ( $t=1; $t<=$MaxValue; $t++) + { + $TRadius = ( $Radius / $MaxValue ) * $t; + + $Angle = -90 + 360 / $Points; + $X1 = $XCenter; + $Y1 = $YCenter - $TRadius; + $X2 = cos($Angle * 3.1418 / 180 ) * $TRadius + $XCenter; + $Y2 = sin($Angle * 3.1418 / 180 ) * $TRadius + $YCenter; + + $XPos = floor(($X2-$X1)/2) + $X1; + $YPos = floor(($Y2-$Y1)/2) + $Y1; + + $Positions = imagettfbbox($this->FontSize,0,$this->FontName,$t); + $X = $XPos - ( $X+$Positions[2] - $X+$Positions[6] ) / 2; + $Y = $YPos + $this->FontSize; + + $this->drawFilledRoundedRectangle($X+$Positions[6]-2,$Y+$Positions[7]-1,$X+$Positions[2]+4,$Y+$Positions[3]+1,2,240,240,240); + $this->drawRoundedRectangle($X+$Positions[6]-2,$Y+$Positions[7]-1,$X+$Positions[2]+4,$Y+$Positions[3]+1,2,220,220,220); + imagettftext($this->Picture,$this->FontSize,0,$X,$Y,$C_TextColor,$this->FontName,$t); + } + } + + /* This function draw a radar graph centered on the graph area */ + function drawRadar($Data,$DataDescription,$BorderOffset=10,$MaxValue=-1) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawRadar",$DataDescription); + $this->validateData("drawRadar",$Data); + + $Points = count($Data); + $Radius = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2 - $BorderOffset; + $XCenter = ( $this->GArea_X2 - $this->GArea_X1 ) / 2 + $this->GArea_X1; + $YCenter = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2 + $this->GArea_Y1; + + /* Search for the max value */ + if ( $MaxValue == -1 ) + { + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + if ( $Data[$Key][$ColName] > $MaxValue ) { $MaxValue = $Data[$Key][$ColName]; } + } + } + } + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $Angle = -90; + $XLast = -1; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + { + $Value = $Data[$Key][$ColName]; + $Strength = ( $Radius / $MaxValue ) * $Value; + + $XPos = cos($Angle * 3.1418 / 180 ) * $Strength + $XCenter; + $YPos = sin($Angle * 3.1418 / 180 ) * $Strength + $YCenter; + + if ( $XLast != -1 ) + $this->drawLine($XLast,$YLast,$XPos,$YPos,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + + if ( $XLast == -1 ) + { $FirstX = $XPos; $FirstY = $YPos; } + + $Angle = $Angle + (360/$Points); + $XLast = $XPos; + $YLast = $YPos; + } + } + $this->drawLine($XPos,$YPos,$FirstX,$FirstY,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + $GraphID++; + } + } + + /* This function draw a radar graph centered on the graph area */ + function drawFilledRadar($Data,$DataDescription,$Alpha=50,$BorderOffset=10,$MaxValue=-1) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawFilledRadar",$DataDescription); + $this->validateData("drawFilledRadar",$Data); + + $Points = count($Data); + $LayerWidth = $this->GArea_X2-$this->GArea_X1; + $LayerHeight = $this->GArea_Y2-$this->GArea_Y1; + $Radius = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2 - $BorderOffset; + $XCenter = ( $this->GArea_X2 - $this->GArea_X1 ) / 2; + $YCenter = ( $this->GArea_Y2 - $this->GArea_Y1 ) / 2; + + /* Search for the max value */ + if ( $MaxValue == -1 ) + { + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + if ( $Data[$Key][$ColName] > $MaxValue && is_numeric($Data[$Key][$ColName])) { $MaxValue = $Data[$Key][$ColName]; } + } + } + } + + $GraphID = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + $ID = 0; + foreach ( $DataDescription["Description"] as $keyI => $ValueI ) + { if ( $keyI == $ColName ) { $ColorID = $ID; }; $ID++; } + + $Angle = -90; + $XLast = -1; + $Plots = ""; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + { + $Value = $Data[$Key][$ColName]; + if ( !is_numeric($Value) ) { $Value = 0; } + $Strength = ( $Radius / $MaxValue ) * $Value; + + $XPos = cos($Angle * 3.1418 / 180 ) * $Strength + $XCenter; + $YPos = sin($Angle * 3.1418 / 180 ) * $Strength + $YCenter; + + $Plots[] = $XPos; + $Plots[] = $YPos; + + $Angle = $Angle + (360/$Points); + $XLast = $XPos; + $YLast = $YPos; + } + } + + if (isset($Plots[0])) + { + $Plots[] = $Plots[0]; + $Plots[] = $Plots[1]; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White = $this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $C_Graph = $this->AllocateColor($this->Layers[0],$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + imagefilledpolygon($this->Layers[0],$Plots,(count($Plots)+1)/2,$C_Graph); + + imagecopymerge($this->Picture,$this->Layers[0],$this->GArea_X1,$this->GArea_Y1,0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + + for($i=0;$i<=count($Plots)-4;$i=$i+2) + $this->drawLine($Plots[$i]+$this->GArea_X1,$Plots[$i+1]+$this->GArea_Y1,$Plots[$i+2]+$this->GArea_X1,$Plots[$i+3]+$this->GArea_Y1,$this->Palette[$ColorID]["R"],$this->Palette[$ColorID]["G"],$this->Palette[$ColorID]["B"]); + } + + $GraphID++; + } + } + + /* This function draw a flat pie chart */ + function drawBasicPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$R=255,$G=255,$B=255,$Decimals=0) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawBasicPieGraph",$DataDescription,FALSE); + $this->validateData("drawBasicPieGraph",$Data); + + /* Determine pie sum */ + $Series = 0; $PieSum = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if ( $ColName != $DataDescription["Position"] ) + { + $Series++; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + $PieSum = $PieSum + $Data[$Key][$ColName]; $iValues[] = $Data[$Key][$ColName]; $iLabels[] = $Data[$Key][$DataDescription["Position"]]; + } + } + } + + /* Validate serie */ + if ( $Series != 1 ) + RaiseFatal("Pie chart can only accept one serie of data."); + + $SpliceRatio = 360 / $PieSum; + $SplicePercent = 100 / $PieSum; + + /* Calculate all polygons */ + $Angle = 0; $TopPlots = ""; + foreach($iValues as $Key => $Value) + { + $TopPlots[$Key][] = $XPos; + $TopPlots[$Key][] = $YPos; + + /* Process labels position & size */ + $Caption = ""; + if ( !($DrawLabels == PIE_NOLABEL) ) + { + $TAngle = $Angle+($Value*$SpliceRatio/2); + if ($DrawLabels == PIE_PERCENTAGE) + $Caption = (round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + elseif ($DrawLabels == PIE_LABELS) + $Caption = $iLabels[$Key]; + elseif ($DrawLabels == PIE_PERCENTAGE_LABEL) + $Caption = $iLabels[$Key]."\r\n".(round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + elseif ($DrawLabels == PIE_PERCENTAGE_LABEL) + $Caption = $iLabels[$Key]."\r\n".(round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Caption); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = abs($Position[1])+abs($Position[3]); + + $TX = cos(($TAngle) * 3.1418 / 180 ) * ($Radius+10) + $XPos; + + if ( $TAngle > 0 && $TAngle < 180 ) + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($Radius+10) + $YPos + 4; + else + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($Radius+4) + $YPos - ($TextHeight/2); + + if ( $TAngle > 90 && $TAngle < 270 ) + $TX = $TX - $TextWidth; + + $C_TextColor = $this->AllocateColor($this->Picture,70,70,70); + imagettftext($this->Picture,$this->FontSize,0,$TX,$TY,$C_TextColor,$this->FontName,$Caption); + } + + /* Process pie slices */ + for($iAngle=$Angle;$iAngle<=$Angle+$Value*$SpliceRatio;$iAngle=$iAngle+.5) + { + $TopX = cos($iAngle * 3.1418 / 180 ) * $Radius + $XPos; + $TopY = sin($iAngle * 3.1418 / 180 ) * $Radius + $YPos; + + $TopPlots[$Key][] = $TopX; + $TopPlots[$Key][] = $TopY; + } + + $TopPlots[$Key][] = $XPos; + $TopPlots[$Key][] = $YPos; + + $Angle = $iAngle; + } + $PolyPlots = $TopPlots; + + /* Set array values type to float --- PHP Bug with imagefilledpolygon casting to integer */ + foreach ($TopPlots as $Key => $Value) + { foreach ($TopPlots[$Key] as $Key2 => $Value2) { settype($TopPlots[$Key][$Key2],"float"); } } + + /* Draw Top polygons */ + foreach ($PolyPlots as $Key => $Value) + { + $C_GraphLo = $this->AllocateColor($this->Picture,$this->Palette[$Key]["R"],$this->Palette[$Key]["G"],$this->Palette[$Key]["B"]); + imagefilledpolygon($this->Picture,$PolyPlots[$Key],(count($PolyPlots[$Key])+1)/2,$C_GraphLo); + } + + $this->drawCircle($XPos-.5,$YPos-.5,$Radius,$R,$G,$B); + $this->drawCircle($XPos-.5,$YPos-.5,$Radius+.5,$R,$G,$B); + + /* Draw Top polygons */ + foreach ($TopPlots as $Key => $Value) + { + for($j=0;$j<=count($TopPlots[$Key])-4;$j=$j+2) + $this->drawLine($TopPlots[$Key][$j],$TopPlots[$Key][$j+1],$TopPlots[$Key][$j+2],$TopPlots[$Key][$j+3],$R,$G,$B); + } + } + + function drawFlatPieGraphWithShadow($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$SpliceDistance=0,$Decimals=0) + { + $this->drawFlatPieGraph($Data,$DataDescription,$XPos+$this->ShadowXDistance,$YPos+$this->ShadowYDistance,$Radius,PIE_NOLABEL,$SpliceDistance,$Decimals,TRUE); + $this->drawFlatPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius,$DrawLabels,$SpliceDistance,$Decimals,FALSE); + } + + /* This function draw a flat pie chart */ + function drawFlatPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$SpliceDistance=0,$Decimals=0,$AllBlack=FALSE) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawFlatPieGraph",$DataDescription,FALSE); + $this->validateData("drawFlatPieGraph",$Data); + + $ShadowStatus = $this->ShadowActive ; $this->ShadowActive = FALSE; + + /* Determine pie sum */ + $Series = 0; $PieSum = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if ( $ColName != $DataDescription["Position"] ) + { + $Series++; + foreach ( $Data as $Key => $Values ) + { + if ( isset($Data[$Key][$ColName])) + $PieSum = $PieSum + $Data[$Key][$ColName]; $iValues[] = $Data[$Key][$ColName]; $iLabels[] = $Data[$Key][$DataDescription["Position"]]; + } + } + } + + /* Validate serie */ + if ( $Series != 1 ) + { + RaiseFatal("Pie chart can only accept one serie of data."); + return(0); + } + + $SpliceRatio = 360 / $PieSum; + $SplicePercent = 100 / $PieSum; + + /* Calculate all polygons */ + $Angle = 0; $TopPlots = ""; + foreach($iValues as $Key => $Value) + { + $XOffset = cos(($Angle+($Value/2*$SpliceRatio)) * 3.1418 / 180 ) * $SpliceDistance; + $YOffset = sin(($Angle+($Value/2*$SpliceRatio)) * 3.1418 / 180 ) * $SpliceDistance; + + $TopPlots[$Key][] = round($XPos + $XOffset); + $TopPlots[$Key][] = round($YPos + $YOffset); + + if ( $AllBlack ) + { $Rc = $this->ShadowRColor; $Gc = $this->ShadowGColor; $Bc = $this->ShadowBColor; } + else + { $Rc = $this->Palette[$Key]["R"]; $Gc = $this->Palette[$Key]["G"]; $Bc = $this->Palette[$Key]["B"]; } + + $XLineLast = ""; $YLineLast = ""; + + /* Process labels position & size */ + $Caption = ""; + if ( !($DrawLabels == PIE_NOLABEL) ) + { + $TAngle = $Angle+($Value*$SpliceRatio/2); + if ($DrawLabels == PIE_PERCENTAGE) + $Caption = (round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + elseif ($DrawLabels == PIE_LABELS) + $Caption = $iLabels[$Key]; + elseif ($DrawLabels == PIE_PERCENTAGE_LABEL) + $Caption = $iLabels[$Key]."\r\n".(round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + elseif ($DrawLabels == PIE_PERCENTAGE_LABEL) + $Caption = $iLabels[$Key]."\r\n".(round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Caption); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = abs($Position[1])+abs($Position[3]); + + $TX = cos(($TAngle) * 3.1418 / 180 ) * ($Radius+10+$SpliceDistance) + $XPos; + + if ( $TAngle > 0 && $TAngle < 180 ) + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($Radius+10+$SpliceDistance) + $YPos + 4; + else + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($Radius+$SpliceDistance+4) + $YPos - ($TextHeight/2); + + if ( $TAngle > 90 && $TAngle < 270 ) + $TX = $TX - $TextWidth; + + $C_TextColor = $this->AllocateColor($this->Picture,70,70,70); + imagettftext($this->Picture,$this->FontSize,0,$TX,$TY,$C_TextColor,$this->FontName,$Caption); + } + + /* Process pie slices */ + if ( !$AllBlack ) + $LineColor = $this->AllocateColor($this->Picture,$Rc,$Gc,$Bc); + else + $LineColor = $this->AllocateColor($this->Picture,$Rc,$Gc,$Bc); + + $XLineLast = ""; $YLineLast = ""; + for($iAngle=$Angle;$iAngle<=$Angle+$Value*$SpliceRatio;$iAngle=$iAngle+.5) + { + $PosX = cos($iAngle * 3.1418 / 180 ) * $Radius + $XPos + $XOffset; + $PosY = sin($iAngle * 3.1418 / 180 ) * $Radius + $YPos + $YOffset; + + $TopPlots[$Key][] = round($PosX); $TopPlots[$Key][] = round($PosY); + + if ( $iAngle == $Angle || $iAngle == $Angle+$Value*$SpliceRatio || $iAngle +.5 > $Angle+$Value*$SpliceRatio) + $this->drawLine($XPos+$XOffset,$YPos+$YOffset,$PosX,$PosY,$Rc,$Gc,$Bc); + + if ( $XLineLast != "" ) + $this->drawLine($XLineLast,$YLineLast,$PosX,$PosY,$Rc,$Gc,$Bc); + + $XLineLast = $PosX; $YLineLast = $PosY; + } + + $TopPlots[$Key][] = round($XPos + $XOffset); $TopPlots[$Key][] = round($YPos + $YOffset); + + $Angle = $iAngle; + } + $PolyPlots = $TopPlots; + + /* Draw Top polygons */ + foreach ($PolyPlots as $Key => $Value) + { + if ( !$AllBlack ) + $C_GraphLo = $this->AllocateColor($this->Picture,$this->Palette[$Key]["R"],$this->Palette[$Key]["G"],$this->Palette[$Key]["B"]); + else + $C_GraphLo = $this->AllocateColor($this->Picture,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor); + + imagefilledpolygon($this->Picture,$PolyPlots[$Key],(count($PolyPlots[$Key])+1)/2,$C_GraphLo); + } + $this->ShadowActive = $ShadowStatus; + } + + /* This function draw a pseudo-3D pie chart */ + function drawPieGraph($Data,$DataDescription,$XPos,$YPos,$Radius=100,$DrawLabels=PIE_NOLABEL,$EnhanceColors=TRUE,$Skew=60,$SpliceHeight=20,$SpliceDistance=0,$Decimals=0) + { + /* Validate the Data and DataDescription array */ + $this->validateDataDescription("drawPieGraph",$DataDescription,FALSE); + $this->validateData("drawPieGraph",$Data); + + /* Determine pie sum */ + $Series = 0; $PieSum = 0; $rPieSum = 0; + foreach ( $DataDescription["Values"] as $Key2 => $ColName ) + { + if ( $ColName != $DataDescription["Position"] ) + { + $Series++; + foreach ( $Data as $Key => $Values ) + if ( isset($Data[$Key][$ColName])) + { + if ( $Data[$Key][$ColName] == 0 ) + { $iValues[] = 0; $rValues[] = 0; $iLabels[] = $Data[$Key][$DataDescription["Position"]]; } + // Removed : $PieSum++; $rValues[] = 1; + else + { $PieSum += $Data[$Key][$ColName]; $iValues[] = $Data[$Key][$ColName]; $iLabels[] = $Data[$Key][$DataDescription["Position"]]; $rValues[] = $Data[$Key][$ColName]; $rPieSum += $Data[$Key][$ColName];} + } + } + } + + /* Validate serie */ + if ( $Series != 1 ) + RaiseFatal("Pie chart can only accept one serie of data."); + + $SpliceDistanceRatio = $SpliceDistance; + $SkewHeight = ($Radius * $Skew) / 100; + $SpliceRatio = (360 - $SpliceDistanceRatio * count($iValues) ) / $PieSum; + $SplicePercent = 100 / $PieSum; + $rSplicePercent = 100 / $rPieSum; + + /* Calculate all polygons */ + $Angle = 0; $CDev = 5; + $TopPlots = ""; $BotPlots = ""; + $aTopPlots = ""; $aBotPlots = ""; + foreach($iValues as $Key => $Value) + { + $XCenterPos = cos(($Angle-$CDev+($Value*$SpliceRatio+$SpliceDistanceRatio)/2) * 3.1418 / 180 ) * $SpliceDistance + $XPos; + $YCenterPos = sin(($Angle-$CDev+($Value*$SpliceRatio+$SpliceDistanceRatio)/2) * 3.1418 / 180 ) * $SpliceDistance + $YPos; + $XCenterPos2 = cos(($Angle+$CDev+($Value*$SpliceRatio+$SpliceDistanceRatio)/2) * 3.1418 / 180 ) * $SpliceDistance + $XPos; + $YCenterPos2 = sin(($Angle+$CDev+($Value*$SpliceRatio+$SpliceDistanceRatio)/2) * 3.1418 / 180 ) * $SpliceDistance + $YPos; + + $TopPlots[$Key][] = round($XCenterPos); $BotPlots[$Key][] = round($XCenterPos); + $TopPlots[$Key][] = round($YCenterPos); $BotPlots[$Key][] = round($YCenterPos + $SpliceHeight); + $aTopPlots[$Key][] = $XCenterPos; $aBotPlots[$Key][] = $XCenterPos; + $aTopPlots[$Key][] = $YCenterPos; $aBotPlots[$Key][] = $YCenterPos + $SpliceHeight; + + /* Process labels position & size */ + $Caption = ""; + if ( !($DrawLabels == PIE_NOLABEL) ) + { + $TAngle = $Angle+($Value*$SpliceRatio/2); + if ($DrawLabels == PIE_PERCENTAGE) + $Caption = (round($rValues[$Key] * pow(10,$Decimals) * $rSplicePercent)/pow(10,$Decimals))."%"; + elseif ($DrawLabels == PIE_LABELS) + $Caption = $iLabels[$Key]; + elseif ($DrawLabels == PIE_PERCENTAGE_LABEL) + $Caption = $iLabels[$Key]."\r\n".(round($Value * pow(10,$Decimals) * $SplicePercent)/pow(10,$Decimals))."%"; + + $Position = imageftbbox($this->FontSize,0,$this->FontName,$Caption); + $TextWidth = $Position[2]-$Position[0]; + $TextHeight = abs($Position[1])+abs($Position[3]); + + $TX = cos(($TAngle) * 3.1418 / 180 ) * ($Radius + 10)+ $XPos; + + if ( $TAngle > 0 && $TAngle < 180 ) + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($SkewHeight + 10) + $YPos + $SpliceHeight + 4; + else + $TY = sin(($TAngle) * 3.1418 / 180 ) * ($SkewHeight + 4) + $YPos - ($TextHeight/2); + + if ( $TAngle > 90 && $TAngle < 270 ) + $TX = $TX - $TextWidth; + + $C_TextColor = $this->AllocateColor($this->Picture,70,70,70); + imagettftext($this->Picture,$this->FontSize,0,$TX,$TY,$C_TextColor,$this->FontName,$Caption); + } + + /* Process pie slices */ + for($iAngle=$Angle;$iAngle<=$Angle+$Value*$SpliceRatio;$iAngle=$iAngle+.5) + { + $TopX = cos($iAngle * 3.1418 / 180 ) * $Radius + $XPos; + $TopY = sin($iAngle * 3.1418 / 180 ) * $SkewHeight + $YPos; + + $TopPlots[$Key][] = round($TopX); $BotPlots[$Key][] = round($TopX); + $TopPlots[$Key][] = round($TopY); $BotPlots[$Key][] = round($TopY + $SpliceHeight); + $aTopPlots[$Key][] = $TopX; $aBotPlots[$Key][] = $TopX; + $aTopPlots[$Key][] = $TopY; $aBotPlots[$Key][] = $TopY + $SpliceHeight; + } + + $TopPlots[$Key][] = round($XCenterPos2); $BotPlots[$Key][] = round($XCenterPos2); + $TopPlots[$Key][] = round($YCenterPos2); $BotPlots[$Key][] = round($YCenterPos2 + $SpliceHeight); + $aTopPlots[$Key][] = $XCenterPos2; $aBotPlots[$Key][] = $XCenterPos2; + $aTopPlots[$Key][] = $YCenterPos2; $aBotPlots[$Key][] = $YCenterPos2 + $SpliceHeight; + + $Angle = $iAngle + $SpliceDistanceRatio; + } + + /* Draw Bottom polygons */ + foreach($iValues as $Key => $Value) + { + $C_GraphLo = $this->AllocateColor($this->Picture,$this->Palette[$Key]["R"],$this->Palette[$Key]["G"],$this->Palette[$Key]["B"],-20); + imagefilledpolygon($this->Picture,$BotPlots[$Key],(count($BotPlots[$Key])+1)/2,$C_GraphLo); + + if ( $EnhanceColors ) { $En = -10; } else { $En = 0; } + + for($j=0;$j<=count($aBotPlots[$Key])-4;$j=$j+2) + $this->drawLine($aBotPlots[$Key][$j],$aBotPlots[$Key][$j+1],$aBotPlots[$Key][$j+2],$aBotPlots[$Key][$j+3],$this->Palette[$Key]["R"]+$En,$this->Palette[$Key]["G"]+$En,$this->Palette[$Key]["B"]+$En); + } + + /* Draw pie layers */ + if ( $EnhanceColors ) { $ColorRatio = 30 / $SpliceHeight; } else { $ColorRatio = 25 / $SpliceHeight; } + for($i=$SpliceHeight-1;$i>=1;$i--) + { + foreach($iValues as $Key => $Value) + { + $C_GraphLo = $this->AllocateColor($this->Picture,$this->Palette[$Key]["R"],$this->Palette[$Key]["G"],$this->Palette[$Key]["B"],-10); + $Plots = ""; $Plot = 0; + foreach($TopPlots[$Key] as $Key2 => $Value2) + { + $Plot++; + if ( $Plot % 2 == 1 ) + $Plots[] = $Value2; + else + $Plots[] = $Value2+$i; + } + imagefilledpolygon($this->Picture,$Plots,(count($Plots)+1)/2,$C_GraphLo); + + $Index = count($Plots); + if ($EnhanceColors ) {$ColorFactor = -20 + ($SpliceHeight - $i) * $ColorRatio; } else { $ColorFactor = 0; } + + $this->drawAntialiasPixel($Plots[0],$Plots[1],$this->Palette[$Key]["R"]+$ColorFactor,$this->Palette[$Key]["G"]+$ColorFactor,$this->Palette[$Key]["B"]+$ColorFactor); + $this->drawAntialiasPixel($Plots[2],$Plots[3],$this->Palette[$Key]["R"]+$ColorFactor,$this->Palette[$Key]["G"]+$ColorFactor,$this->Palette[$Key]["B"]+$ColorFactor); + $this->drawAntialiasPixel($Plots[$Index-4],$Plots[$Index-3],$this->Palette[$Key]["R"]+$ColorFactor,$this->Palette[$Key]["G"]+$ColorFactor,$this->Palette[$Key]["B"]+$ColorFactor); + } + } + + /* Draw Top polygons */ + for($Key=count($iValues)-1;$Key>=0;$Key--) + { + $C_GraphLo = $this->AllocateColor($this->Picture,$this->Palette[$Key]["R"],$this->Palette[$Key]["G"],$this->Palette[$Key]["B"]); + imagefilledpolygon($this->Picture,$TopPlots[$Key],(count($TopPlots[$Key])+1)/2,$C_GraphLo); + + if ( $EnhanceColors ) { $En = 10; } else { $En = 0; } + for($j=0;$j<=count($aTopPlots[$Key])-4;$j=$j+2) + $this->drawLine($aTopPlots[$Key][$j],$aTopPlots[$Key][$j+1],$aTopPlots[$Key][$j+2],$aTopPlots[$Key][$j+3],$this->Palette[$Key]["R"]+$En,$this->Palette[$Key]["G"]+$En,$this->Palette[$Key]["B"]+$En); + } + } + + /* This function can be used to set the background color */ + function drawBackground($R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Background = $this->AllocateColor($this->Picture,$R,$G,$B); + imagefilledrectangle($this->Picture,0,0,$this->XSize,$this->YSize,$C_Background); + } + + /* This function can be used to set the background color */ + function drawGraphAreaGradient($R,$G,$B,$Decay,$Target=TARGET_GRAPHAREA) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + if ( $Target == TARGET_GRAPHAREA ) { $X1 = $this->GArea_X1+1; $X2 = $this->GArea_X2-1; $Y1 = $this->GArea_Y1+1; $Y2 = $this->GArea_Y2; } + if ( $Target == TARGET_BACKGROUND ) { $X1 = 0; $X2 = $this->XSize; $Y1 = 0; $Y2 = $this->YSize; } + + /* Positive gradient */ + if ( $Decay > 0 ) + { + $YStep = ($Y2 - $Y1 - 2) / $Decay; + for($i=0;$i<=$Decay;$i++) + { + $R-=1;$G-=1;$B-=1; + $Yi1 = $Y1 + ( $i * $YStep ); + $Yi2 = ceil( $Yi1 + ( $i * $YStep ) + $YStep ); + if ( $Yi2 >= $Yi2 ) { $Yi2 = $Y2-1; } + + $C_Background = $this->AllocateColor($this->Picture,$R,$G,$B); + imagefilledrectangle($this->Picture,$X1,$Yi1,$X2,$Yi2,$C_Background); + } + } + + /* Negative gradient */ + if ( $Decay < 0 ) + { + $YStep = ($Y2 - $Y1 - 2) / -$Decay; + $Yi1 = $Y1; $Yi2 = $Y1+$YStep; + for($i=-$Decay;$i>=0;$i--) + { + $R+=1;$G+=1;$B+=1; + $C_Background = $this->AllocateColor($this->Picture,$R,$G,$B); + imagefilledrectangle($this->Picture,$X1,$Yi1,$X2,$Yi2,$C_Background); + + $Yi1+= $YStep; + $Yi2+= $YStep; + if ( $Yi2 >= $Yi2 ) { $Yi2 = $Y2-1; } + } + } + } + + /* This function create a rectangle with antialias */ + function drawRectangle($X1,$Y1,$X2,$Y2,$R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Rectangle = $this->AllocateColor($this->Picture,$R,$G,$B); + + $X1=$X1-.2;$Y1=$Y1-.2; + $X2=$X2+.2;$Y2=$Y2+.2; + $this->drawLine($X1,$Y1,$X2,$Y1,$R,$G,$B); + $this->drawLine($X2,$Y1,$X2,$Y2,$R,$G,$B); + $this->drawLine($X2,$Y2,$X1,$Y2,$R,$G,$B); + $this->drawLine($X1,$Y2,$X1,$Y1,$R,$G,$B); + } + + /* This function create a filled rectangle with antialias */ + function drawFilledRectangle($X1,$Y1,$X2,$Y2,$R,$G,$B,$DrawBorder=TRUE,$Alpha=100,$NoFallBack=FALSE) + { + if ( $X2 < $X1 ) { list($X1, $X2) = array($X2, $X1); } + if ( $Y2 < $Y1 ) { list($Y1, $Y2) = array($Y2, $Y1); } + + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + if ( $Alpha == 100 ) + { + /* Process shadows */ + if ( $this->ShadowActive && !$NoFallBack ) + { + $this->drawFilledRectangle($X1+$this->ShadowXDistance,$Y1+$this->ShadowYDistance,$X2+$this->ShadowXDistance,$Y2+$this->ShadowYDistance,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,FALSE,$this->ShadowAlpha,TRUE); + if ( $this->ShadowBlur != 0 ) + { + $AlphaDecay = ($this->ShadowAlpha / $this->ShadowBlur); + + for($i=1; $i<=$this->ShadowBlur; $i++) + $this->drawFilledRectangle($X1+$this->ShadowXDistance-$i/2,$Y1+$this->ShadowYDistance-$i/2,$X2+$this->ShadowXDistance-$i/2,$Y2+$this->ShadowYDistance-$i/2,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,FALSE,$this->ShadowAlpha-$AlphaDecay*$i,TRUE); + for($i=1; $i<=$this->ShadowBlur; $i++) + $this->drawFilledRectangle($X1+$this->ShadowXDistance+$i/2,$Y1+$this->ShadowYDistance+$i/2,$X2+$this->ShadowXDistance+$i/2,$Y2+$this->ShadowYDistance+$i/2,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,FALSE,$this->ShadowAlpha-$AlphaDecay*$i,TRUE); + } + } + + $C_Rectangle = $this->AllocateColor($this->Picture,$R,$G,$B); + imagefilledrectangle($this->Picture,round($X1),round($Y1),round($X2),round($Y2),$C_Rectangle); + } + else + { + $LayerWidth = abs($X2-$X1)+2; + $LayerHeight = abs($Y2-$Y1)+2; + + $this->Layers[0] = imagecreatetruecolor($LayerWidth,$LayerHeight); + $C_White = $this->AllocateColor($this->Layers[0],255,255,255); + imagefilledrectangle($this->Layers[0],0,0,$LayerWidth,$LayerHeight,$C_White); + imagecolortransparent($this->Layers[0],$C_White); + + $C_Rectangle = $this->AllocateColor($this->Layers[0],$R,$G,$B); + imagefilledrectangle($this->Layers[0],round(1),round(1),round($LayerWidth-1),round($LayerHeight-1),$C_Rectangle); + + imagecopymerge($this->Picture,$this->Layers[0],round(min($X1,$X2)-1),round(min($Y1,$Y2)-1),0,0,$LayerWidth,$LayerHeight,$Alpha); + imagedestroy($this->Layers[0]); + } + + if ( $DrawBorder ) + { + $ShadowSettings = $this->ShadowActive; $this->ShadowActive = FALSE; + $this->drawRectangle($X1,$Y1,$X2,$Y2,$R,$G,$B); + $this->ShadowActive = $ShadowSettings; + } + } + + /* This function create a rectangle with rounded corners and antialias */ + function drawRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,$R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Rectangle = $this->AllocateColor($this->Picture,$R,$G,$B); + + $Step = 90 / ((3.1418 * $Radius)/2); + + for($i=0;$i<=90;$i=$i+$Step) + { + $X = cos(($i+180)*3.1418/180) * $Radius + $X1 + $Radius; + $Y = sin(($i+180)*3.1418/180) * $Radius + $Y1 + $Radius; + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + + $X = cos(($i-90)*3.1418/180) * $Radius + $X2 - $Radius; + $Y = sin(($i-90)*3.1418/180) * $Radius + $Y1 + $Radius; + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + + $X = cos(($i)*3.1418/180) * $Radius + $X2 - $Radius; + $Y = sin(($i)*3.1418/180) * $Radius + $Y2 - $Radius; + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + + $X = cos(($i+90)*3.1418/180) * $Radius + $X1 + $Radius; + $Y = sin(($i+90)*3.1418/180) * $Radius + $Y2 - $Radius; + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + } + + $X1=$X1-.2;$Y1=$Y1-.2; + $X2=$X2+.2;$Y2=$Y2+.2; + $this->drawLine($X1+$Radius,$Y1,$X2-$Radius,$Y1,$R,$G,$B); + $this->drawLine($X2,$Y1+$Radius,$X2,$Y2-$Radius,$R,$G,$B); + $this->drawLine($X2-$Radius,$Y2,$X1+$Radius,$Y2,$R,$G,$B); + $this->drawLine($X1,$Y2-$Radius,$X1,$Y1+$Radius,$R,$G,$B); + } + + /* This function create a filled rectangle with rounded corners and antialias */ + function drawFilledRoundedRectangle($X1,$Y1,$X2,$Y2,$Radius,$R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Rectangle = $this->AllocateColor($this->Picture,$R,$G,$B); + + $Step = 90 / ((3.1418 * $Radius)/2); + + for($i=0;$i<=90;$i=$i+$Step) + { + $Xi1 = cos(($i+180)*3.1418/180) * $Radius + $X1 + $Radius; + $Yi1 = sin(($i+180)*3.1418/180) * $Radius + $Y1 + $Radius; + + $Xi2 = cos(($i-90)*3.1418/180) * $Radius + $X2 - $Radius; + $Yi2 = sin(($i-90)*3.1418/180) * $Radius + $Y1 + $Radius; + + $Xi3 = cos(($i)*3.1418/180) * $Radius + $X2 - $Radius; + $Yi3 = sin(($i)*3.1418/180) * $Radius + $Y2 - $Radius; + + $Xi4 = cos(($i+90)*3.1418/180) * $Radius + $X1 + $Radius; + $Yi4 = sin(($i+90)*3.1418/180) * $Radius + $Y2 - $Radius; + + imageline($this->Picture,$Xi1,$Yi1,$X1+$Radius,$Yi1,$C_Rectangle); + imageline($this->Picture,$X2-$Radius,$Yi2,$Xi2,$Yi2,$C_Rectangle); + imageline($this->Picture,$X2-$Radius,$Yi3,$Xi3,$Yi3,$C_Rectangle); + imageline($this->Picture,$Xi4,$Yi4,$X1+$Radius,$Yi4,$C_Rectangle); + + $this->drawAntialiasPixel($Xi1,$Yi1,$R,$G,$B); + $this->drawAntialiasPixel($Xi2,$Yi2,$R,$G,$B); + $this->drawAntialiasPixel($Xi3,$Yi3,$R,$G,$B); + $this->drawAntialiasPixel($Xi4,$Yi4,$R,$G,$B); + } + + imagefilledrectangle($this->Picture,$X1,$Y1+$Radius,$X2,$Y2-$Radius,$C_Rectangle); + imagefilledrectangle($this->Picture,$X1+$Radius,$Y1,$X2-$Radius,$Y2,$C_Rectangle); + + $X1=$X1-.2;$Y1=$Y1-.2; + $X2=$X2+.2;$Y2=$Y2+.2; + $this->drawLine($X1+$Radius,$Y1,$X2-$Radius,$Y1,$R,$G,$B); + $this->drawLine($X2,$Y1+$Radius,$X2,$Y2-$Radius,$R,$G,$B); + $this->drawLine($X2-$Radius,$Y2,$X1+$Radius,$Y2,$R,$G,$B); + $this->drawLine($X1,$Y2-$Radius,$X1,$Y1+$Radius,$R,$G,$B); + } + + /* This function create a circle with antialias */ + function drawCircle($Xc,$Yc,$Height,$R,$G,$B,$Width=0) + { + if ( $Width == 0 ) { $Width = $Height; } + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Circle = $this->AllocateColor($this->Picture,$R,$G,$B); + $Step = 360 / (2 * 3.1418 * max($Width,$Height)); + + for($i=0;$i<=360;$i=$i+$Step) + { + $X = cos($i*3.1418/180) * $Height + $Xc; + $Y = sin($i*3.1418/180) * $Width + $Yc; + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + } + } + + /* This function create a filled circle/ellipse with antialias */ + function drawFilledCircle($Xc,$Yc,$Height,$R,$G,$B,$Width=0) + { + if ( $Width == 0 ) { $Width = $Height; } + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $C_Circle = $this->AllocateColor($this->Picture,$R,$G,$B); + $Step = 360 / (2 * 3.1418 * max($Width,$Height)); + + for($i=90;$i<=270;$i=$i+$Step) + { + $X1 = cos($i*3.1418/180) * $Height + $Xc; + $Y1 = sin($i*3.1418/180) * $Width + $Yc; + $X2 = cos((180-$i)*3.1418/180) * $Height + $Xc; + $Y2 = sin((180-$i)*3.1418/180) * $Width + $Yc; + + $this->drawAntialiasPixel($X1-1,$Y1-1,$R,$G,$B); + $this->drawAntialiasPixel($X2-1,$Y2-1,$R,$G,$B); + + if ( ($Y1-1) > $Yc - max($Width,$Height) ) + imageline($this->Picture,$X1,$Y1-1,$X2-1,$Y2-1,$C_Circle); + } + } + + /* This function will draw a filled ellipse */ + function drawEllipse($Xc,$Yc,$Height,$Width,$R,$G,$B) + { $this->drawCircle($Xc,$Yc,$Height,$R,$G,$B,$Width); } + + /* This function will draw an ellipse */ + function drawFilledEllipse($Xc,$Yc,$Height,$Width,$R,$G,$B) + { $this->drawFilledCircle($Xc,$Yc,$Height,$R,$G,$B,$Width); } + + /* This function create a line with antialias */ + function drawLine($X1,$Y1,$X2,$Y2,$R,$G,$B,$GraphFunction=FALSE) + { + if ( $this->LineDotSize > 1 ) { $this->drawDottedLine($X1,$Y1,$X2,$Y2,$this->LineDotSize,$R,$G,$B,$GraphFunction); return(0); } + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $Distance = sqrt(($X2-$X1)*($X2-$X1)+($Y2-$Y1)*($Y2-$Y1)); + if ( $Distance == 0 ) + return(-1); + $XStep = ($X2-$X1) / $Distance; + $YStep = ($Y2-$Y1) / $Distance; + + for($i=0;$i<=$Distance;$i++) + { + $X = $i * $XStep + $X1; + $Y = $i * $YStep + $Y1; + + if ( ($X >= $this->GArea_X1 && $X <= $this->GArea_X2 && $Y >= $this->GArea_Y1 && $Y <= $this->GArea_Y2) || !$GraphFunction ) + { + if ( $this->LineWidth == 1 ) + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + else + { + $StartOffset = -($this->LineWidth/2); $EndOffset = ($this->LineWidth/2); + for($j=$StartOffset;$j<=$EndOffset;$j++) + $this->drawAntialiasPixel($X+$j,$Y+$j,$R,$G,$B); + } + } + } + } + + /* This function create a line with antialias */ + function drawDottedLine($X1,$Y1,$X2,$Y2,$DotSize,$R,$G,$B,$GraphFunction=FALSE) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $Distance = sqrt(($X2-$X1)*($X2-$X1)+($Y2-$Y1)*($Y2-$Y1)); + + $XStep = ($X2-$X1) / $Distance; + $YStep = ($Y2-$Y1) / $Distance; + + $DotIndex = 0; + for($i=0;$i<=$Distance;$i++) + { + $X = $i * $XStep + $X1; + $Y = $i * $YStep + $Y1; + + if ( $DotIndex <= $DotSize) + { + if ( ($X >= $this->GArea_X1 && $X <= $this->GArea_X2 && $Y >= $this->GArea_Y1 && $Y <= $this->GArea_Y2) || !$GraphFunction ) + { + if ( $this->LineWidth == 1 ) + $this->drawAntialiasPixel($X,$Y,$R,$G,$B); + else + { + $StartOffset = -($this->LineWidth/2); $EndOffset = ($this->LineWidth/2); + for($j=$StartOffset;$j<=$EndOffset;$j++) + $this->drawAntialiasPixel($X+$j,$Y+$j,$R,$G,$B); + } + } + } + + $DotIndex++; + if ( $DotIndex == $DotSize * 2 ) + $DotIndex = 0; + } + } + + /* Load a PNG file and draw it over the chart */ + function drawFromPNG($FileName,$X,$Y,$Alpha=100) + { $this->drawFromPicture(1,$FileName,$X,$Y,$Alpha); } + + /* Load a GIF file and draw it over the chart */ + function drawFromGIF($FileName,$X,$Y,$Alpha=100) + { $this->drawFromPicture(2,$FileName,$X,$Y,$Alpha); } + + /* Load a JPEG file and draw it over the chart */ + function drawFromJPG($FileName,$X,$Y,$Alpha=100) + { $this->drawFromPicture(3,$FileName,$X,$Y,$Alpha); } + + /* Generic loader function for external pictures */ + function drawFromPicture($PicType,$FileName,$X,$Y,$Alpha=100) + { + if ( file_exists($FileName)) + { + $Infos = getimagesize($FileName); + $Width = $Infos[0]; + $Height = $Infos[1]; + if ( $PicType == 1 ) { $Raster = imagecreatefrompng($FileName); } + if ( $PicType == 2 ) { $Raster = imagecreatefromgif($FileName); } + if ( $PicType == 3 ) { $Raster = imagecreatefromjpeg($FileName); } + + imagecopymerge($this->Picture,$Raster,$X,$Y,0,0,$Width,$Height,$Alpha); + imagedestroy($Raster); + } + } + + /* Draw an alpha pixel */ + function drawAlphaPixel($X,$Y,$Alpha,$R,$G,$B) + { + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + if ( $X < 0 || $Y < 0 || $X >= $this->XSize || $Y >= $this->YSize ) + return(-1); + + $RGB2 = imagecolorat($this->Picture, $X, $Y); + $R2 = ($RGB2 >> 16) & 0xFF; + $G2 = ($RGB2 >> 8) & 0xFF; + $B2 = $RGB2 & 0xFF; + + $iAlpha = (100 - $Alpha)/100; + $Alpha = $Alpha / 100; + + $Ra = floor($R*$Alpha+$R2*$iAlpha); + $Ga = floor($G*$Alpha+$G2*$iAlpha); + $Ba = floor($B*$Alpha+$B2*$iAlpha); + + $C_Aliased = $this->AllocateColor($this->Picture,$Ra,$Ga,$Ba); + imagesetpixel($this->Picture,$X,$Y,$C_Aliased); + } + + /* Color helper */ + function AllocateColor($Picture,$R,$G,$B,$Factor=0) + { + $R = $R + $Factor; + $G = $G + $Factor; + $B = $B + $Factor; + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + return(imagecolorallocate($Picture,$R,$G,$B)); + } + + /* Add a border to the picture */ + function addBorder($Size=3,$R=0,$G=0,$B=0) + { + $Width = $this->XSize+2*$Size; + $Height = $this->YSize+2*$Size; + + $Resampled = imagecreatetruecolor($Width,$Height); + $C_Background = $this->AllocateColor($Resampled,$R,$G,$B); + imagefilledrectangle($Resampled,0,0,$Width,$Height,$C_Background); + + imagecopy($Resampled,$this->Picture,$Size,$Size,0,0,$this->XSize,$this->YSize); + imagedestroy($this->Picture); + + $this->XSize = $Width; + $this->YSize = $Height; + + $this->Picture = imagecreatetruecolor($this->XSize,$this->YSize); + $C_White = $this->AllocateColor($this->Picture,255,255,255); + imagefilledrectangle($this->Picture,0,0,$this->XSize,$this->YSize,$C_White); + imagecolortransparent($this->Picture,$C_White); + imagecopy($this->Picture,$Resampled,0,0,0,0,$this->XSize,$this->YSize); + } + + /* Render the current picture to a file */ + function Render($FileName) + { + if ( $this->ErrorReporting ) + $this->printErrors($this->ErrorInterface); + + /* Save image map if requested */ + if ( $this->BuildMap ) + $this->SaveImageMap(); + + imagepng($this->Picture,$FileName); + } + + /* Render the current picture to STDOUT */ + function Stroke() + { + if ( $this->ErrorReporting ) + $this->printErrors("GD"); + + /* Save image map if requested */ + if ( $this->BuildMap ) + $this->SaveImageMap(); + + header('Content-type: image/png'); + imagepng($this->Picture); + } + + /* Private functions for internal processing */ + function drawAntialiasPixel($X,$Y,$R,$G,$B,$Alpha=100,$NoFallBack=FALSE) + { + /* Process shadows */ + if ( $this->ShadowActive && !$NoFallBack ) + { + $this->drawAntialiasPixel($X+$this->ShadowXDistance,$Y+$this->ShadowYDistance,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,$this->ShadowAlpha,TRUE); + if ( $this->ShadowBlur != 0 ) + { + $AlphaDecay = ($this->ShadowAlpha / $this->ShadowBlur); + + for($i=1; $i<=$this->ShadowBlur; $i++) + $this->drawAntialiasPixel($X+$this->ShadowXDistance-$i/2,$Y+$this->ShadowYDistance-$i/2,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,$this->ShadowAlpha-$AlphaDecay*$i,TRUE); + for($i=1; $i<=$this->ShadowBlur; $i++) + $this->drawAntialiasPixel($X+$this->ShadowXDistance+$i/2,$Y+$this->ShadowYDistance+$i/2,$this->ShadowRColor,$this->ShadowGColor,$this->ShadowBColor,$this->ShadowAlpha-$AlphaDecay*$i,TRUE); + } + } + + if ( $R < 0 ) { $R = 0; } if ( $R > 255 ) { $R = 255; } + if ( $G < 0 ) { $G = 0; } if ( $G > 255 ) { $G = 255; } + if ( $B < 0 ) { $B = 0; } if ( $B > 255 ) { $B = 255; } + + $Plot = ""; + $Xi = floor($X); + $Yi = floor($Y); + + if ( $Xi == $X && $Yi == $Y) + { + if ( $Alpha == 100 ) + { + $C_Aliased = $this->AllocateColor($this->Picture,$R,$G,$B); + imagesetpixel($this->Picture,$X,$Y,$C_Aliased); + } + else + $this->drawAlphaPixel($X,$Y,$Alpha,$R,$G,$B); + } + else + { + $Alpha1 = (((1 - ($X - floor($X))) * (1 - ($Y - floor($Y))) * 100) / 100) * $Alpha; + if ( $Alpha1 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi,$Yi,$Alpha1,$R,$G,$B); } + + $Alpha2 = ((($X - floor($X)) * (1 - ($Y - floor($Y))) * 100) / 100) * $Alpha; + if ( $Alpha2 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi+1,$Yi,$Alpha2,$R,$G,$B); } + + $Alpha3 = (((1 - ($X - floor($X))) * ($Y - floor($Y)) * 100) / 100) * $Alpha; + if ( $Alpha3 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi,$Yi+1,$Alpha3,$R,$G,$B); } + + $Alpha4 = ((($X - floor($X)) * ($Y - floor($Y)) * 100) / 100) * $Alpha; + if ( $Alpha4 > $this->AntialiasQuality ) { $this->drawAlphaPixel($Xi+1,$Yi+1,$Alpha4,$R,$G,$B); } + } + } + + /* Validate data contained in the description array */ + function validateDataDescription($FunctionName,&$DataDescription,$DescriptionRequired=TRUE) + { + if (!isset($DataDescription["Position"])) + { + $this->Errors[] = "[Warning] ".$FunctionName." - Y Labels are not set."; + $DataDescription["Position"] = "Name"; + } + + if ( $DescriptionRequired ) + { + if (!isset($DataDescription["Description"])) + { + $this->Errors[] = "[Warning] ".$FunctionName." - Series descriptions are not set."; + foreach($DataDescription["Values"] as $key => $Value) + { + $DataDescription["Description"][$Value] = $Value; + } + } + + if (count($DataDescription["Description"]) < count($DataDescription["Values"])) + { + $this->Errors[] = "[Warning] ".$FunctionName." - Some series descriptions are not set."; + foreach($DataDescription["Values"] as $key => $Value) + { + if ( !isset($DataDescription["Description"][$Value])) + $DataDescription["Description"][$Value] = $Value; + } + } + } + } + + /* Validate data contained in the data array */ + function validateData($FunctionName,&$Data) + { + $DataSummary = array(); + + foreach($Data as $key => $Values) + { + foreach($Values as $key2 => $Value) + { + if (!isset($DataSummary[$key2])) + $DataSummary[$key2] = 1; + else + $DataSummary[$key2]++; + } + } + + if ( max($DataSummary) == 0 ) + $this->Errors[] = "[Warning] ".$FunctionName." - No data set."; + + foreach($DataSummary as $key => $Value) + { + if ($Value < max($DataSummary)) + { + $this->Errors[] = "[Warning] ".$FunctionName." - Missing data in serie ".$key."."; + } + } + } + + /* Print all error messages on the CLI or graphically */ + function printErrors($Mode="CLI") + { + if (count($this->Errors) == 0) + return(0); + + if ( $Mode == "CLI" ) + { + foreach($this->Errors as $key => $Value) + echo $Value."\r\n"; + } + elseif ( $Mode == "GD" ) + { + $this->setLineStyle($Width=1); + $MaxWidth = 0; + foreach($this->Errors as $key => $Value) + { + $Position = imageftbbox($this->ErrorFontSize,0,$this->ErrorFontName,$Value); + $TextWidth = $Position[2]-$Position[0]; + if ( $TextWidth > $MaxWidth ) { $MaxWidth = $TextWidth; } + } + $this->drawFilledRoundedRectangle($this->XSize-($MaxWidth+20),$this->YSize-(20+(($this->ErrorFontSize+4)*count($this->Errors))),$this->XSize-10,$this->YSize-10,6,233,185,185); + $this->drawRoundedRectangle($this->XSize-($MaxWidth+20),$this->YSize-(20+(($this->ErrorFontSize+4)*count($this->Errors))),$this->XSize-10,$this->YSize-10,6,193,145,145); + + $C_TextColor = $this->AllocateColor($this->Picture,133,85,85); + $YPos = $this->YSize - (18 + (count($this->Errors)-1) * ($this->ErrorFontSize + 4)); + foreach($this->Errors as $key => $Value) + { + imagettftext($this->Picture,$this->ErrorFontSize,0,$this->XSize-($MaxWidth+15),$YPos,$C_TextColor,$this->ErrorFontName,$Value); + $YPos = $YPos + ($this->ErrorFontSize + 4); + } + } + } + + /* Activate the image map creation process */ + function setImageMap($Mode=TRUE,$GraphID="MyGraph") + { + $this->BuildMap = $Mode; + $this->MapID = $GraphID; + } + + /* Add a box into the image map */ + function addToImageMap($X1,$Y1,$X2,$Y2,$SerieName,$Value,$CallerFunction) + { + if ( $this->MapFunction == NULL || $this->MapFunction == $CallerFunction ) + { + $this->ImageMap[] = round($X1).",".round($Y1).",".round($X2).",".round($Y2).",".$SerieName.",".$Value; + $this->MapFunction = $CallerFunction; + } + } + + /* Load and cleanup the image map from disk */ + function getImageMap($MapName,$Flush=TRUE) + { + /* Strip HTML query strings */ + $Values = $this->tmpFolder.$MapName; + $Value = split("\?",$Values); + $FileName = $Value[0]; + + if ( file_exists($FileName) ) + { + $Handle = fopen($FileName, "r"); + $MapContent = fread($Handle, filesize($FileName)); + fclose($Handle); + echo $MapContent; + + if ( $Flush ) + unlink($FileName); + + exit(); + } + else + { + header("HTTP/1.0 404 Not Found"); + exit(); + } + } + + /* Save the image map to the disk */ + function SaveImageMap() + { + if ( !$this->BuildMap ) { return(-1); } + + if ( $this->ImageMap == NULL ) + { + $this->Errors[] = "[Warning] SaveImageMap - Image map is empty."; + return(-1); + } + + $Handle = fopen($this->tmpFolder.$this->MapID, 'w'); + if ( !$Handle ) + { + $this->Errors[] = "[Warning] SaveImageMap - Cannot save the image map."; + return(-1); + } + else + { + foreach($this->ImageMap as $Key => $Value) + fwrite($Handle, htmlentities($Value)."\r"); + } + fclose ($Handle); + } + + /* Convert seconds to a time format string */ + function ToTime($Value) + { + $Hour = floor($Value/3600); + $Minute = floor(($Value - $Hour*3600)/60); + $Second = floor($Value - $Hour*3600 - $Minute*60); + + if (strlen($Hour) == 1 ) { $Hour = "0".$Hour; } + if (strlen($Minute) == 1 ) { $Minute = "0".$Minute; } + if (strlen($Second) == 1 ) { $Second = "0".$Second; } + + return($Hour.":".$Minute.":".$Second); + } + + /* Convert to metric system */ + function ToMetric($Value) + { + $Go = floor($Value/1000000000); + $Mo = floor(($Value - $Go*1000000000)/1000000); + $Ko = floor(($Value - $Go*1000000000 - $Mo*1000000)/1000); + $o = floor($Value - $Go*1000000000 - $Mo*1000000 - $Ko*1000); + + if ($Go != 0) { return($Go.".".$Mo."g"); } + if ($Mo != 0) { return($Mo.".".$ko."m"); } + if ($Ko != 0) { return($Ko.".".$o)."k"; } + return($o); + } + + /* Convert to curency */ + function ToCurrency($Value) + { + $Go = floor($Value/1000000000); + $Mo = floor(($Value - $Go*1000000000)/1000000); + $Ko = floor(($Value - $Go*1000000000 - $Mo*1000000)/1000); + $o = floor($Value - $Go*1000000000 - $Mo*1000000 - $Ko*1000); + + if ( strlen($o) == 1 ) { $o = "00".$o; } + if ( strlen($o) == 2 ) { $o = "0".$o; } + + $ResultString = $o; + if ( $Ko != 0 ) { $ResultString = $Ko.".".$ResultString; } + if ( $Mo != 0 ) { $ResultString = $Mo.".".$ResultString; } + if ( $Go != 0 ) { $ResultString = $Go.".".$ResultString; } + + $ResultString = $this->Currency.$ResultString; + return($ResultString); + } + + /* Set date format for axis labels */ + function setDateFormat($Format) + { + $this->DateFormat = $Format; + } + + /* Convert TS to a date format string */ + function ToDate($Value) + { + return(date($this->DateFormat,$Value)); + } + + /* Check if a number is a full integer (for scaling) */ + function isRealInt($Value) + { + if ($Value == floor($Value)) + return(TRUE); + return(FALSE); + } + } + + function RaiseFatal($Message) + { + echo "[FATAL] ".$Message."\r\n"; + exit(); + } +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/pData.class b/gosa-core/include/pChart/pData.class new file mode 100644 index 000000000..8e1938d36 --- /dev/null +++ b/gosa-core/include/pChart/pData.class @@ -0,0 +1,260 @@ +. + + Class initialisation : + pData() + Data populating methods : + ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1) + AddPoint($Value,$Serie="Serie1",$Description="") + Series manipulation methods : + AddSerie($SerieName="Serie1") + AddAllSeries() + RemoveSerie($SerieName="Serie1") + SetAbsciseLabelSerie($SerieName = "Name") + SetSerieName($Name,$SerieName="Serie1") + + SetSerieSymbol($Name,$Symbol) + SetXAxisName($Name="X Axis") + SetYAxisName($Name="Y Axis") + SetXAxisFormat($Format="number") + SetYAxisFormat($Format="number") + SetXAxisUnit($Unit="") + SetYAxisUnit($Unit="") + removeSerieName($SerieName) + removeAllSeries() + Data retrieval methods : + GetData() + GetDataDescription() + */ + + /* pData class definition */ + class pData + { + var $Data; + var $DataDescription; + + function pData() + { + $this->Data = ""; + $this->DataDescription = ""; + $this->DataDescription["Position"] = "Name"; + $this->DataDescription["Format"]["X"] = "number"; + $this->DataDescription["Format"]["Y"] = "number"; + $this->DataDescription["Unit"]["X"] = NULL; + $this->DataDescription["Unit"]["Y"] = NULL; + } + + function ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1) + { + $handle = @fopen($FileName,"r"); + if ($handle) + { + $HeaderParsed = FALSE; + while (!feof($handle)) + { + $buffer = fgets($handle, 4096); + $buffer = str_replace(chr(10),"",$buffer); + $buffer = str_replace(chr(13),"",$buffer); + $Values = split($Delimiter,$buffer); + + if ( $buffer != "" ) + { + if ( $HasHeader == TRUE && $HeaderParsed == FALSE ) + { + if ( $DataColumns == -1 ) + { + $ID = 1; + foreach($Values as $key => $Value) + { $this->SetSerieName($Value,"Serie".$ID); $ID++; } + } + else + { + $SerieName = ""; + + foreach($DataColumns as $key => $Value) + $this->SetSerieName($Values[$Value],"Serie".$Value); + } + $HeaderParsed = TRUE; + } + else + { + if ( $DataColumns == -1 ) + { + $ID = 1; + foreach($Values as $key => $Value) + { $this->AddPoint(intval($Value),"Serie".$ID); $ID++; } + } + else + { + $SerieName = ""; + if ( $DataName != -1 ) + $SerieName = $Values[$DataName]; + + foreach($DataColumns as $key => $Value) + $this->AddPoint($Values[$Value],"Serie".$Value,$SerieName); + } + } + } + } + fclose($handle); + } + } + + function AddPoint($Value,$Serie="Serie1",$Description="") + { + if (is_array($Value) && count($Value) == 1) + $Value = $Value[0]; + + $ID = 0; + for($i=0;$i<=count($this->Data);$i++) + { if(isset($this->Data[$i][$Serie])) { $ID = $i+1; } } + + if ( count($Value) == 1 ) + { + $this->Data[$ID][$Serie] = $Value; + if ( $Description != "" ) + $this->Data[$ID]["Name"] = $Description; + elseif (!isset($this->Data[$ID]["Name"])) + $this->Data[$ID]["Name"] = $ID; + } + else + { + foreach($Value as $key => $Val) + { + $this->Data[$ID][$Serie] = $Val; + if (!isset($this->Data[$ID]["Name"])) + $this->Data[$ID]["Name"] = $ID; + $ID++; + } + } + } + + function AddSerie($SerieName="Serie1") + { + if ( !isset($this->DataDescription["Values"]) ) + { + $this->DataDescription["Values"][] = $SerieName; + } + else + { + $Found = FALSE; + foreach($this->DataDescription["Values"] as $key => $Value ) + if ( $Value == $SerieName ) { $Found = TRUE; } + + if ( !$Found ) + $this->DataDescription["Values"][] = $SerieName; + } + } + + function AddAllSeries() + { + unset($this->DataDescription["Values"]); + + if ( isset($this->Data[0]) ) + { + foreach($this->Data[0] as $Key => $Value) + { + if ( $Key != "Name" ) + $this->DataDescription["Values"][] = $Key; + } + } + } + + function RemoveSerie($SerieName="Serie1") + { + if ( !isset($this->DataDescription["Values"]) ) + return(0); + + $Found = FALSE; + foreach($this->DataDescription["Values"] as $key => $Value ) + { + if ( $Value == $SerieName ) + unset($this->DataDescription["Values"][$key]); + } + } + + function SetAbsciseLabelSerie($SerieName = "Name") + { + $this->DataDescription["Position"] = $SerieName; + } + + function SetSerieName($Name,$SerieName="Serie1") + { + $this->DataDescription["Description"][$SerieName] = $Name; + } + + function SetXAxisName($Name="X Axis") + { + $this->DataDescription["Axis"]["X"] = $Name; + } + + function SetYAxisName($Name="Y Axis") + { + $this->DataDescription["Axis"]["Y"] = $Name; + } + + function SetXAxisFormat($Format="number") + { + $this->DataDescription["Format"]["X"] = $Format; + } + + function SetYAxisFormat($Format="number") + { + $this->DataDescription["Format"]["Y"] = $Format; + } + + function SetXAxisUnit($Unit="") + { + $this->DataDescription["Unit"]["X"] = $Unit; + } + + function SetYAxisUnit($Unit="") + { + $this->DataDescription["Unit"]["Y"] = $Unit; + } + + function SetSerieSymbol($Name,$Symbol) + { + $this->DataDescription["Symbol"][$Name] = $Symbol; + } + + function removeSerieName($SerieName) + { + if ( isset($this->DataDescription["Description"][$SerieName]) ) + unset($this->DataDescription["Description"][$SerieName]); + } + + function removeAllSeries() + { + foreach($this->DataDescription["Values"] as $Key => $Value) + unset($this->DataDescription["Values"][$Key]); + } + + function GetData() + { + return($this->Data); + } + + function GetDataDescription() + { + return($this->DataDescription); + } + } +?> \ No newline at end of file diff --git a/gosa-core/include/pChart/pf_arma_five.ttf b/gosa-core/include/pChart/pf_arma_five.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db04ec3b0480d81f4e866917f482d5d9619522b1 GIT binary patch literal 21936 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 literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/softtones.txt b/gosa-core/include/pChart/softtones.txt new file mode 100644 index 000000000..ca941cac2 --- /dev/null +++ b/gosa-core/include/pChart/softtones.txt @@ -0,0 +1,5 @@ +168,188,56 +188,208,76 +208,228,96 +228,245,116 +248,255,136 diff --git a/gosa-core/include/pChart/tahoma.ttf b/gosa-core/include/pChart/tahoma.ttf new file mode 100644 index 0000000000000000000000000000000000000000..59b14a2d2d45b78eecbb2f22e1d2e084678e8d94 GIT binary patch literal 383804 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 O@`a}xV@&j7=>7#Q^<=;R literal 0 HcmV?d00001 diff --git a/gosa-core/include/pChart/tones.txt b/gosa-core/include/pChart/tones.txt new file mode 100644 index 000000000..5016263de --- /dev/null +++ b/gosa-core/include/pChart/tones.txt @@ -0,0 +1,5 @@ +94,48,0 +201,34,0 +247,143,1 +255,238,208 +90,181,110 -- 2.30.2