Viewing file: pie.php (2.39 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
header("Content-type: image/png");
$img = ImageCreate(300, 300); //КГйТ§ГЩ»ў№Тґ 300x300
ImageColorAllocate($img, 255, 255, 255); //ЎУЛ№ґѕЧй№ГЩ»а»з№КХўТЗ
$degrees = array(); //КГйТ§µСЗб»Г $degrees а»з№НТГмаГВмЗиТ§дЗйЎиН№
$diameter = 200; //ЎУЛ№ґў№ТґаКй№јиТ№ИЩ№ВмЎЕТ§ўН§бј№АЩБФЗ§ЎЕБ
$radius = $diameter / 2; //аЎзєў№ТґГСИБХўН§З§ЎЕБдЗйг№µСЗб»Г $radius
$sum = array_sum($data); //ЛТјЕГЗБўН§ўйНБЩЕ·Сй§ЛБґ
for ($i=1; $i<=3; $i++) {
//¤У№Зіў№ТґўН§БШБµТБ¤иТўН§ўйНБЩЕ вґВаЎзєдЗйг№µСЗб»ГЄ№ФґНТГмаГВмЄЧиН $degrees
$degrees[$i] = ($data[$i] / $sum) * 360;
}
$red = ImageColorAllocate($img, 255, 0, 0);
$blue = ImageColorAllocate($img, 0, 0, 255);
$green = ImageColorAllocate($img, 0, 150, 0);
$yellow = ImageColorAllocate($img, 255, 255, 0);
$black = ImageColorAllocate($img, 0, 0, 0);
$white = ImageColorAllocate($img, 255, 255, 255);
//аЎзє¤иТКХдЗйг№НТГмаГВм аѕЧиН¤ЗТБКРґЗЎµН№а·КХЕ§д»г№бµиЕР૤аµНГмўН§бј№АЩБФ
$arrColor = array($red, $blue, $green, $yellow, $black);
$last_angle = 0; //ЎУЛ№ґБШБ·ХиЁРаГФиБЗҴ૤аµНГм
//ЗҴ૤аµНГм (sector) ўН§бµиЕРўйНБЩЕг№бј№АЩБФЗ§ЎЕБ
for ($i=1; $i<=5; $i++) {
//ЗТґКиЗ№в¤й§
ImageArc($img, 150, 150, $diameter, $diameter, $last_angle,
($last_angle + $degrees[$i]), $black);
//ЎУЛ№ґ¤иТБШБўН§а«¤аµНГм·ХиЁР¶ЩЎЗТґг№ГНє¶Сґд»
$last_angle += $degrees[$i];
/* ¤У№ЗіЛТѕФЎСґ (x, y) µГ§КиЗ№»ЕТВўН§аКй№в¤й§
аѕЧиНЁРдґйгЄйїС§ЎмЄСи№ ImageLine() ЕТЎаКй№д»ЛТдґй¶ЩЎµйН§ */
$end_x = round(150 + ($radius * cos($last_angle * pi() / 180)));
$end_y = round(150 + ($radius * sin($last_angle * pi() / 180)));
//ЕТЎаКй№ЁТЎЁШґИЩ№ВмЎЕТ§ўН§З§ЎЕБд»ВС§»ЕТВКиЗ№в¤й§
ImageLine($img, 150, 150, $end_x, $end_y, $black);
}
$prev_angle = 0;
$pointer = 0;
for ($i=1; $i<=5; $i++) {
$pointer = $prev_angle + $degrees[$i];
$this_angle = ($prev_angle + $pointer) / 2;
$prev_angle = $pointer;
//¤У№ЗіЛТѕФЎСґ (x, y) µГ§КиЗ№»ЕТВўН§аКй№в¤й§
$end_x = round(150 + ($radius * cos($this_angle * pi() / 180)));
$end_y = round(150 + ($radius * sin($this_angle * pi() / 180)));
//¤У№ЗіЛТѕФЎСґ (x, y) ўН§ЁШґ·ХиНВЩиЎЦи§ЎЕҧ૤аµНГм аѕЧиНгЄйїС§ЎмЄСи№ ImageFill() а·КХЕ§д»
$mid_x = round((150 + ($end_x)) / 2);
$mid_y = round((150 + ($end_y)) / 2);
//а·КХЕ§д»·ХиѕФЎСґ ($mid_x, $mid_y) «Ци§а»з№ЁШґЎЦи§ЎЕТ§ўН§бµиЕР૤аµНГм
ImageFill($img, $mid_x, $mid_y, $arrColor[$i - 1]);
}
ImagePNG($img);
ImageDestroy($img);
?>
|