ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.05.2024
Просмотров: 26
Скачиваний: 0
//малюємо окантовку чорним кольором для виведеного раніше сектора
imagefilledarc($im, $x0, $y0, $radius*2, $radius*2,
$begAngle, $endAngle,
$black, IMG_ARC_EDGED | IMG_ARC_NOFILL);
}
Для обробки даних і побудови діаграми нам не обійтися без відповідної функції, якій ми будемо передавати масив даних, масив кольорів, відповідних кожному елементу масиву даних, центр кола та його радіус:
function drawDiagram($dataArray,$colors,$x0,$y0,$radius)
{
global $im,$x0,$y0,$black;
//вираховуємо кількість елементів в масиві даних
$count=count($dataArray);
//отримуємо кількість всіх елементів масиву
$sumVal=array_sum($dataArray);
//почаниємо малювати сектора с кута 0 градусів
$begAngle=0;
//вираховуємо кут для промальовки першого сектора
$endAngle=floor($begAngle+
(($dataArray[1]*100)/$sumVal)*360/100);
//малюємо сегмент, відповідний розміру першого елемента масиву
drawSegment($x0,$y0,$radius,
$begAngle,$endAngle,$colors[1]);
//аналогічно діємо с іншими елементами масиву, за виключенням останнього
for($i=2;$i<$count;$i++)
{
$begAngle=$endAngle;
$endAngle=floor($begAngle+
(($dataArray[$i]*100)/$sumVal)*360/100);
drawSegment($x0,$y0,$radius,
$begAngle,$endAngle,$colors[$i]);
}
//малюємо сегмент для останнього елемента масиву
$begAngle=$endAngle;
$endAngle=360;
drawSegment($x0,$y0,$radius,
$begAngle,$endAngle,$colors[$count]);
}
Тепер створимо тестову діаграму, з використанням наших функцій:
$im = @ImageCreate (500, 400);
include "colors.inc";
$x0=200; $y0=200;
$radius=100;
$dataArray[1]=2; $colors[1]=$red;
$dataArray[2]=6; $colors[2]=$blue;
$dataArray[3]=10; $colors[3]=$green;
drawDiagram($dataArray,$colors,$x0,$y0,$radius);
ImagePNG($im);
imagedestroy($im);
?>
Для виведення сформованого графіка в браузер можна скористатися скриптом, аналогічним тому, який був використаний в прикладі з лічильником.
Контрольні питання
-
В чому полягає особливість скриптів, що опрацьовують графіку?
-
Як зображення, сформоване РНР-засобами, виводиться до браузера?
-
Коротко опишіть порядок створення малюнку в РНР.
-
Які функції використовуються при створенні графічних об’єктів? Дайте стислу характеристику і наведіть формальний синтаксис кожної.
-
Як відбувається робота з кольором в РНР?