Changeset 46 for trunk/Application/View/Graph.php
- Timestamp:
- Jul 27, 2014, 9:05:14 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Application/View/Graph.php
r45 r46 6 6 class GraphView extends View 7 7 { 8 var $DefaultWidth; 9 var $DefaultHeight; 10 11 function __construct($System) 12 { 13 parent::__construct($System); 14 $this->DefaultWidth = 800; 15 $this->DefaultHeight = 200; 16 } 17 8 18 function Render() 9 19 { 10 if(array_key_exists('Debug', $_GET)) $Debug = $_GET['Debug']; 20 if(array_key_exists('Debug', $_GET)) $Debug = $_GET['Debug']; 11 21 else $Debug = 0; 12 22 13 23 if(!array_key_exists('From', $_GET)) die('Musíte zadat čas počátku'); 14 24 $StartTime = addslashes($_GET['From']); … … 18 28 $TimeDifference = $EndTime - $StartTime; 19 29 if(!array_key_exists('Measure', $_GET)) die('Musíte zadat měřenou veličinu'); 20 $MeasureId = addslashes($_GET['Measure']); 21 if(!array_key_exists('Width', $_GET)) $Width = $ DefaultWidth;30 $MeasureId = addslashes($_GET['Measure']); 31 if(!array_key_exists('Width', $_GET)) $Width = $this->DefaultWidth; 22 32 else $Width = addslashes($_GET['Width']); 23 if(!array_key_exists('Height', $_GET)) $Height = $ DefaultHeight;33 if(!array_key_exists('Height', $_GET)) $Height = $this->DefaultHeight; 24 34 else $Height = addslashes($_GET['Height']); 25 35 if(!array_key_exists('Differential', $_GET)) $Differential = $this->Config['Application']['DefaultVariables']['Differential']; … … 50 60 $Points = $Measure->GetValues($StartTime, $EndTime, $Level); 51 61 52 if($Debug) echo('Points count: '.count($Points).'<br/>'); 53 //if($Debug) foreach($Points as $Index => $Item) 54 // echo($Index.': '.$Item['min'].'<br >');62 if($Debug) echo('Points count: '.count($Points).'<br/>'); 63 //if($Debug) foreach($Points as $Index => $Item) 64 // echo($Index.': '.$Item['min'].'<br/>'); 55 65 56 66 // Calculate total max, avg, min value … … 73 83 $AvgValue = $AvgValue / count($Points); //round( * $Measure['Divider']) / $Measure['Divider']; 74 84 75 // Generate polygon and recalculate y values to fit graph height 85 // Generate polygon and recalculate y values to fit graph height 76 86 $PointsMin = array(0, $Height - 1); 77 87 $PointsAvg = array(0, $Height - 1); 78 88 $PointsMax = array(0, $Height - 1); 79 89 if(($MaxValue - $MinValue) == 0) $MaxValue = $MinValue + 1; 80 { 90 { 81 91 foreach($Points as $Index => $Item) 82 92 { … … 87 97 $PointsMax[] = $Index * $Width / $Measure->DivisionCount; 88 98 $PointsMax[] = $Height - 1 - ($Points[$Index]['Max'] - $MinValue) / ($MaxValue - $MinValue) * $Height * $this->Config['Application']['ValueToImageHeigthCoefficient']; 89 //echo($Index.' - '.$Item.' '.$Points[$Index].'<br >');99 //echo($Index.' - '.$Item.' '.$Points[$Index].'<br/>'); 90 100 } 91 101 } … … 107 117 //array_unshift($Points, 0); 108 118 //$Points[] = $Width - 1; 109 //$Points[] = $Height - 1; 119 //$Points[] = $Height - 1; echo('sds'); 120 110 121 111 122 //print_r($PointsMax); 112 123 113 124 // Generate image 114 if(!$Debug) 125 if(!$Debug) 115 126 { 116 127 Header('Content-type: image/png'); 117 Header('Cache-Control: no-cache'); // Dynamic graph - no cache 128 Header('Cache-Control: no-cache'); // Dynamic graph - no cache 118 129 $Image = @imagecreate($Width, $Height); 119 130 $BackgroundColor = imagecolorallocate($Image, 255, 255, 255); … … 132 143 imagefilledpolygon($Image, $PointsAvg, count($PointsAvg) / 2, $LightGreen); 133 144 imagefilledpolygon($Image, $PointsMin, count($PointsMin) / 2, $LightBlue); 134 145 135 146 $TimeMarks = array(1, 60, 60*60, 60*60*24, 60*60*24*7, 60*60*24*30, 60*60*24*365, 60*60*24*365*10); 136 147 137 148 $TimeRange = $EndTime - $StartTime; 138 149 $TimeMarksIndex = 0; … … 140 151 if($TimeMarksIndex < 2) $TimeMarksIndex = 2; 141 152 $MajorTimeMarks = $TimeMarks[$TimeMarksIndex - 1]; 142 $MinorTimeMarks = $TimeMarks[$TimeMarksIndex - 2]; 143 144 $TimeShift = $Measure->AlignTime($StartTime, $MajorTimeMarks) - $StartTime; 153 $MinorTimeMarks = $TimeMarks[$TimeMarksIndex - 2]; 154 155 $TimeShift = $Measure->AlignTime($StartTime, $MajorTimeMarks) - $StartTime; 145 156 //imagestring($Image, 10, 40, 50, $TimeShift, $Black); 146 157 147 158 // Zobraz měřítko Y 148 159 $VerticalLinesDistance = $Height / $VerticalLinesCount; … … 152 163 for($X = 1; $X < $Width; $X = $X + 3) imagesetpixel($Image, $X, $Y, $Gray); 153 164 //imageline($Image, 30, $Y, $Width-1, $Y, IMG_COLOR_STYLED); 154 } 155 156 $TimeShift = $Measure->AlignTime($StartTime, $MinorTimeMarks) - $StartTime; 157 165 } 166 167 $TimeShift = $Measure->AlignTime($StartTime, $MinorTimeMarks) - $StartTime; 168 158 169 // Zobraz měřítko X 159 170 $LastTextEnd = 0; 160 171 for($Time = $StartTime; $Time < $EndTime; $Time += $MajorTimeMarks) 161 172 { 162 $X = round(($Time - $StartTime + $TimeShift) / $TimeRange * $Width) % $Width; 173 $X = round(($Time - $StartTime + $TimeShift) / $TimeRange * $Width) % $Width; 163 174 //imageline($Image, 30, $Y, $Width-1, $Y, IMG_COLOR_STYLED); 164 175 if(($MajorTimeMarks > 60 * 60 * 24)) $Text = date('j.n.Y', $Time + $TimeShift); … … 172 183 } 173 184 else for($Y = 0; $Y < $Height; $Y = $Y + 3) imagesetpixel($Image, $X, $Y, $Gray); 174 } 175 185 } 186 176 187 // Popisky osy Y 177 188 for($I = 1; $I <= $VerticalLinesCount; $I++) … … 183 194 if(($Y - ($BoundBox[5] - $BoundBox[1]) / 2) > 10) 184 195 imagettftext($Image, $FontSize, 0, 2, $Y - ($BoundBox[5] - $BoundBox[1]) / 2, $Black, $FontFile, $Text); 185 } 196 } 186 197 $GenerationTime = floor(($this->System->GetMicrotime() - $StopWatchStart) * 1000 ) / 1000; 187 198 … … 208 219 imagepng($Image); 209 220 imagedestroy($Image); 210 } 221 } 211 222 } 212 223 }
Note:
See TracChangeset
for help on using the changeset viewer.