-
Notifications
You must be signed in to change notification settings - Fork 0
/
GistagrammClass.php
46 lines (39 loc) · 1.55 KB
/
GistagrammClass.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
require('utility.php');
class Gistagramm{
var $widthColumn;
var $array;
var $align;
var $image;
function Gistagramm(array $array){
$this->array = $array;
$this->widthColumn = 0.6;
$this->align = 10;
}
function setWidth($width){
if($width > 1 || $width < 0)
$width = 0.5;
else
$this->widthColumn = $width;
}
function createGistagramm($width , $heigth){
$image = @imagecreate($width, $heigth);
$maxKey = findMaxKey($this->array);
$maxValue = findMaxValue($this->array);
ImageColorAllocate($image , 255 , 255 , 255);
ImageLine ($image, $this->align, $heigth - $this->align, $width - $this->align, $heigth - $this->align, 1);
ImageLine ($image, $this->align, $this->align, $this->align, $heigth - $this->align, 1);
$widthRect = round(($width - 2 * $this->align) / ($maxKey + 1)) * $this->widthColumn;
foreach ($this->array as $key => $value) {
$color = getColor($image , $value , $maxValue);
$heigthRect = round($value * ($heigth - 2 * $this->align) / $maxValue);
$pos = round(($key / ($maxKey + 1)) * ($width - 2 * $this->align)) + $this->align;
ImageFilledRectangle ($image, $pos - $widthRect / 2 , $heigth - $heigthRect, $pos + $widthRect / 2 , $heigth - $this->align, $color);
$white = ImageColorAllocate ($image, 217, 220, 57);
ImageStringUp ($image, 0, $pos - $widthRect / 2 + 4, $heigth - $heigthRect/2, $value, $white);
ImageString ($image, 0, $pos - $widthRect / 2, $heigth - $this->align, $key , 1);
}
$this->image = $image;
}
};
?>