Файл: Лабораторна робота 15.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.05.2024

Просмотров: 30

Скачиваний: 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);

?>

Для виведення сформованого графіка в браузер можна скористатися скриптом, аналогічним тому, який був використаний в прикладі з лічильником.

Контрольні питання

  1. В чому полягає особливість скриптів, що опрацьовують графіку?

  2. Як зображення, сформоване РНР-засобами, виводиться до браузера?

  3. Коротко опишіть порядок створення малюнку в РНР.

  4. Які функції використовуються при створенні графічних об’єктів? Дайте стислу характеристику і наведіть формальний синтаксис кожної.

  5. Як відбувається робота з кольором в РНР?