Круговая диаграмма средствами библиотеки GD

В случае, если необходимо отобразить процентное соотношение каких-либо параметров, не обойтись без круговой диаграммы. Строить ее совсем не трудно, если знать о существовании функций библиотеки GD imagearc и imagefilledarc, которые рисуют дугу и закрашенную дугу соответственно. В качестве параметров функции imagearc(int im, int cx, int cy, int w, int h, int s, int e, int col) нужно указать: im - идентификатор области рисования; cx, cy - координаты центра дуги; w, h - ширину и высота дуги (для построения сектора круга они должны быть равны); s, e - начальный и конечный углы дуги (в градусах, от 0 до 360) и конечно же col - цвет дуги. Функция imagefilledarc() отличается от предыдущей лишь наличием дополнительного параметра style, который определяет способ заливки сектора. Этот параметр может принимать следующие значения:

IMG_ARC_PIE - обычный способ заливки, получается закрашенный сектор;
IMG_ARC_CHORD (IMG_ARC_CHORD и IMG_ARC_PIE взаимоисключающие параметры) - заливка по хорде, то есть получается закрашенный треугольник;
IMG_ARC_NOFILL - без заливки, получаем просто дугу;
IMG_ARC_EDGED - используется совместно с IMG_ARC_NOFILL и указывает, что конечный и начальный углы дуги должны быть соединены с центром.

Эти параметры можно указывать, используя оператор || (ИЛИ).

Теперь, когда у нас есть все необходимые знания, создадим скрипт круговой диаграммы в новом файле diagramma.php. Для начала создадим функцию рисования одного сектора круга требуемого цвета с заданным центром, радиусом, начальным и конечным углами:
<?php

function drawSegment($x0,$y0,$radius,$begAngle,$endAngle,$color) {
global $im,$x0,$y0,$black;
//рисуем сектор круга соответствующих размера и цвета
imagefilledarc($im, $x0, $y0, $radius*2, $radius*2,
    $begAngle, $endAngle,
    $color, IMG_ARC_PIE);
//рисуем окантовку черным цветом
//для выведенного ранее сектора
imagefilledarc($im, $x0, $y0, $radius*2, $radius*2,
    $begAngle, $endAngle,
    $black, IMG_ARC_EDGED | IMG_ARC_NOFILL);
}
Теги:
диаграмма, GD
Добавлено: 03 Июля 2018 07:55:39 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...