Класс dxgraph предоставляет возможности построения столбчатых (вертикальных и горизонтальных) диаграмм, графиков всевозможных функций,
круговых диаграмм, графиков по точкам, а также создания легенд этих диаграмм, сетки, координатных осей и т.д. Класс почти не обрабатывает ошибок, поэтому проверка корректности данных
лежит на ваших плечах. Просто не передавайте вместо чисел строки, или вместо массивов булевые значения, и всё будет работать:)
Новая версия класса - 1.1. Добавлены функции image_grad и random_pixels, улучшена функция diagram_set_colors. Также добавлена private-функция imagettfbbox_fixed, исправляющая ошибку вычисления размеров наклонного текста функции imagettfbbox. Засчёт этого улучшены функции maxttfxsize и maxttfysize.
Все переменные являются private, поэтому не меняйте их вручную. Можете сильно не изучать эти переменные, они описаны для ознакомления. Если что-то будет непонятно, смотрим пример.
Читайте описания функций, разбирайте пример. Если что будет в нём непонятно - возвращайтесь сюда.
Основные функции |
dxgraph($image_width=320, $image_height=240, $truecolor=true, $file='', $type=0, $copyresized=true, $createonlyfromfile=false) |
public, конструктор класса, создаёт изображение
передаваемые параметры:
$image_width - ширина создаваемого изображения
$image_height - высота создаваемого изображения
$truecolor - создавать ли изображение true color? Если true, то функция пытается создать true color изображение. Если не выходит, обойдёмся обычным (вроде 256 цветов)
$file - необязательный параметр, если задан, то создаётся изображение из файла ($file - путь к этому файлу)
$type - необязательный параметр, тип изображения в файле $file (0 - png, 1 - jpeg, 2 - gif)
$copyresized - если true и задан $file, то изображение из файла будет подогнано под заданную ширину и высоту. Если нет, то вставится без изменения размеров
$createonlyfromfile - если true и задан $file, то изображение создаётся исключительно из файла с его параметрами (высота, ширина, глубина цвета). $truecolor всегда будет true |
image_resize($width=1, $height=1, $src_resize=false)
|
public, изменяет размер изображения
передаваемые параметры:
$width - новая ширина
$height - новая высота
$src_resize - если true, то размер содержимого изображения будет подогнан под новый размер |
image_rotate($angle=0) |
public, вращает изображение. Непокрытая зона после поворота будет залита текущим цветом (см. set_color)
передаваемые параметры:
$angle - угол поворота |
get_image()
|
public, возвращает ID текущего изображения |
get_tile()
|
public, возвращает ID текущей текстуры |
get_brush()
|
public, возвращает ID текущей кисти |
get_point()
|
public, возвращает ID текущей точки диаграмм/графиков (см. пример) |
image_destroy_point() |
public, удаляет текущую точку диаграмм/графиков. Используется перед установкой новой точки.
|
image_rotate_point($angle=0) |
public, вращает текущую точку диаграмм/графиков и заливает освободившееся при повороте пространство текущим цветом
передаваемые параметры:
$angle - угол поворота
|
get_image_params()
|
public, возвращает массив параметров изображения ([0] => ширина, [1] => высота, [2] => глубина цвета) |
get_current_params()
|
public, возвращает массив с текущими параметрами ([0] => красная составляющая, [1] => зелёная составляющая, [2] => синяя составляющая, [3] => текущая толщина линий, [4] => имя шрифта, [5] => его размер, [6] => его угол наклона) |
set_font($font_size=20, $font_angle=0, $name='') |
public, устанавливает шрифт текста. Достаточно задать имя шрифта 1 раз, потом можно просто менять его размер и угол наклона.
передаваемые параметры:
$name - имя файла шрифта (или путь к нему)
$font_size - размер шрифта
$font_angle - угол наклона текста
|
set_line_thickness($lvl=1) |
public, устанавливает толщину линий для рисования
передаваемые параметры:
$lvl - толщина в пикселах
|
set_image_tile($name, $type=0) |
public, устанавливает текстуру для рисования
передаваемые параметры:
$name - имя файла текстуры (или путь к нему)
$type - тип изображения в файле (0 - png, 1 - jpeg, 2 - gif)
|
image_set_point($file=NULL, $type=0, $for_hgraph=false, $x=false, $y=false) |
public, устанавливает точку диаграмм/графиков (см. пример)
передаваемые параметры:
$file - имя файла точки (или путь к нему)
$type - тип изображения в файле (0 - png, 1 - jpeg, 2 - gif)
$for_hgraph - укажите true, если используете точку для графиков, false - для диаграмм
$x, $y - смещения точки относительно центра по осям x и y соответственно. Если указано false, то будет производиться автоматическая центровка по заданной координате
|
set_color($r=255, $g=255, $b=255, $transparency=false) |
public, устанавливает цвет рисования
передаваемые параметры:
$r - красная составляющая цвета
$g - зелёная составляющая цвета
$b - синяя составляющая цвета
$transparency - если не false, то будет создан прозрачный цвет с прозрачностью $transparency
|
image_ttf_text($text, $x=0, $y=0, $unicode=false, rotate_each=false, $letter_space=20, $color=NULL, $nsize=-1, $addfont='') |
public, наносит надпись на изображение, используя текущие настройки шрифта
передаваемые параметры:
$text - текст надписи
$x, $y - координаты начала текста
$unicode - если true, то строка будет преобразована в unicode-кодировку. Используйте, если русские символы выводятся иероглифами
$rotate_each - если true, то на угол $font_angle поворачивается каждая буква текста. Если false, то поворачивается весь текст целиком
$letter_space - расстояние между буквами текста. Используется, если $rotate_each=true
$color - внутренний параметр класса, задаёт временный цвет шрифта
$nsize - внутренний параметр класса, задаёт временный размер шрифта
$addfont - внутренний параметр класса, задаёт временный шрифт
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_fill($rect_fill=false) |
public, заливает изображение
передаваемые параметры:
$rect_fill - если true, то заливка ведётся с помощью прямоугольника. Рекомендуется, так как стандартная функция заливки иногда не работает
|
image_output($format=0, $file=NULL) |
public, выводит/сохраняет изображение
передаваемые параметры:
$format - формат выводимого изображения (0 - png, 1 - jpeg, 2 - gif)
$file - если задано, то вывод изображения производится не в браузер, а в файл $file
|
image_arc($xcenter=0, $ycenter=0, $width=0, $height=0, $angle_start=0, $angle_end=360, $fillstyle=IMG_ARC_PIE, $speccolor=NULL, $notfilled=false) |
public, рисует дугу
передаваемые параметры:
$xcenter, $ycenter - координаты центра дуги
$width - ширина дуги
$height - высота дуги
$angle_start - начальный угол дуги
$angle_end - конечный угол дуги
$isfilled - если true, рисует дугу с заливкой
$fillstyle - тип заливки дуги (IMG_ARC_PIE/IMG_ARC_CHORD/IMG_ARC_NOFILL/IMG_ARC_EDGED)
$speccolor - внутренний параметр класса, задаёт временный цвет дуги
$notfilled - внутренний параметр класса, если true, то дуга залита не будет в любом случае
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_filled_ellipse($xcenter=0, $ycenter=0, $width=0, $height=0) |
public, рисует эллипс с заливкой
передаваемые параметры:
$xcenter, $ycenter - координаты центра эллипса
$width - ширина эллипса
$height - высота эллипса
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_circle($xcenter=0, $ycenter=0, $radius=0, $fillstyle=IMG_ARC_PIE, $speccolor=NULL, $notfilled=false) |
public, рисует окружность/круг
передаваемые параметры:
$xcenter, $ycenter - координаты центра окружности
$radius - диаметр окружности
$isfilled - если true, рисует окружность с заливкой (круг)
$fillstyle - тип заливки окружности (IMG_ARC_PIE/IMG_ARC_CHORD/IMG_ARC_NOFILL/IMG_ARC_EDGED)
$speccolor - внутренний параметр класса, задаёт временный цвет окружности/круга
$notfilled - внутренний параметр класса, если true, то окружность залита не будет в любом случае
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_line($x1, $y1, $x2, $y2, $scolor=NULL, $width=-1) |
public, рисует линию
передаваемые параметры:
$x1, $y1 - координаты начала линии
$x2, $y2 - координаты конца линии
$speccolor - внутренний параметр класса, задаёт временный цвет линии
$width - внутренний параметр класса, задаёт временную толщину линии
|
image_make_border() |
public, рисует рамку
|
image_rectangle($x1, $y1, $x2, $y2, $speccolor=NULL, $notfilled=false, $width=-1) |
public, рисует прямоугольник
передаваемые параметры:
$x1, $y1 - координаты верхнего левого угла прямоугольника
$x2, $y2 - координаты правого нижнего угла прямоугольника
$speccolor - внутренний параметр класса, задаёт временный цвет прямоугольника
$notfilled - внутренний параметр класса, если true, то прямоугольник залита не будет в любом случае
$width - внутренний параметр класса, задаёт временную толщину линий прямоугольника
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_hatch($step=7, $angle=45) |
public, рисует штриховку
передаваемые параметры:
$step - шаг штриховки
$angle - угол наклона штриховки
|
image_polygon($points, $num_points, $fillcolor=NULL, $filled=false) |
public, рисует многоугольник
передаваемые параметры:
$points - массив точек вида array(x1,y1, x2,y2, x3,y3 и т.д)
$num_points - число точек
$fillcolor - внутренний параметр класса, задаёт временный цвет многоугольника
$filled - внутренний параметр класса, если true, рисует многоугольник с заливкой
Данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_reverse_colors() |
public, инвертирует цвета изображения
|
image_gray() |
public, делает изображение чёрно-белым
|
image_emboss() |
public, придаёт эффект теснения изображению
|
image_smooth($lvl=1) |
public, размывает изображение
передаваемые параметры:
$lvl - уровень размытия (0 - самое сильное)
|
image_remove_mean() |
public, делает изображение чётче
|
image_set_brightness($lvl=0) |
public, изменяет яркость изображения
передаваемые параметры:
$lvl - уровень яркости
|
image_set_contrast($lvl=0) |
public, изменяет контраст изображения
передаваемые параметры:
$lvl - уровень контраста
|
image_pixel($x=0, $y=0) |
public, рисует точку
передаваемые параметры:
$x, $y - координаты точки
|
paste_image($file, $type=0, $copyresized=false, $dst_x=0, $dst_y=0, $src_x=0, $src_y=0, $src_w=-1, $src_h=-1, $dst_w=-1, $dst_h=-1) |
public, вставляет заданное изображение в текущее
передаваемые параметры:
$name - имя файла изображения для вставки (или путь к нему)
$type - формат изображения для вставки (0 - png, 1 - jpeg, 2 - gif)
$copyresized - если true, то при вставке меняет размер изображения
$dst_x, $dst_y - координаты вставки изображения
$src_x, $src_y - координаты в изображении для вставки, начиная с которых изображение будет вставлено (0,0 - начало)
$src_w, $src_h - ширина и высота изображения для вставки (если зададите меньше истинной ширины и высоты, будет вставлена чать изображения)
$dst_w, $dst_h - новая ширина и высота вставляемого изображения (если $copyresized=true)
Примечание: если какие-то из переменных $src_w, $src_h, $dst_w, $dst_h меньше нуля, то будут вырбаны соответствующие максимальные размеры рисунков. Также данная функция считает координатой (0,0) верхний левый угол рисунка.
|
image_set_style($pixels) |
public, устанавливает стиль рисования
передаваемые параметры:
$pixels - массив пикселов стиля (см. пример)
|
image_set_brush($file, $type=0) |
public, устанавливает кисть для рисования
передаваемые параметры:
$name - имя файла изображения-кисти (или путь к нему)
$type - формат изображения-кисти (0 - png, 1 - jpeg, 2 - gif)
|
rgb($r=255, $g=255, $b=255) |
public, создаёт и возвращает заданный цвет
передаваемые параметры:
$r - красная составляющая цвета
$g - зелёная составляющая цвета
$b - синяя составляющая цвета
|
image_make_color_transparent($closest=false) |
public, делает текущий цвет прозрачным
передаваемые параметры:
$closest - если true, то прозрачным будет сделан цвет, ближайший к текущему
|
destroy_all() |
public, удаляет из памяти изображение, кисть, текстуру, точку диаграмм. После вызова данной функции Вы не сможете работать с объектом класса, используйте её
после завершения всех действий с изображением для освобождения памяти.
|
to_unicode($text,$from='w') |
private, используется классом для преобразования текстовой строки в unicode-кодировку
передаваемые параметры:
$text - текст
$from - исходная кодировка страницы
|
maxttfxsize($txt='', $size=-1) |
private, используется классом для получения максимального размера текста по оси X
передаваемые параметры:
$txt - текст
$size - временный размер текста
Может возвращать отрицательное число.
|
maxttfysize($txt='', $size=-1) |
private, используется классом для получения максимального размера текста по оси Y
передаваемые параметры:
$txt - текст
$size - временный размер текста
Может возвращать отрицательное число.
|
imagettfbbox_fixed($size, $angle, $font, $text) |
private, аналог стандартной PHP-функции imagettfbbox, но исправляет ошибку расчёта размеров наклонных шрифтов
|
set_drawing($isfilled=false, $tiled=false, $styled=false, $brushed=false) |
public, устанавливает текущие настройки рисования
передаваемые параметры:
$isfilled - если true, рисование фигур производится с заливкой
$tiled - если true и $isfilled=true, рисование фигур с заливкой текстурой
$styled - если true, рисование производится с использованием текущего стиля
$brushed - если true, рисование производится с использованием кисти
|
image_grad($type=0, $colors=array(), $xfrom=0, $yfrom=0, $xto=-1, $yto=-1, $transparency=NULL) |
public, создаёт градиентную заливку
передаваемые параметры:
$type - тип градиента. 0 - горизонтальный, 1 - вертикальный, 2 - двойной горизонтальный, 3 - двойной вертикальный
$colors - цвета градиента, массив вида array($r1,$r2, $g1,$g2, $b1,$b2), где $r1,$r2 - от какого и до какого значения меняется красная составляющая. Аналогично, зелёная и синяя.
Пример: array(250,0,250,0,50,50) - красная: от 250 до 0, зелёная: от 250 до 0, синяя не меняется (всегда 50)
$xfrom, $yfrom - координаты начала градиента (относитеьно верхнего левого угла рисунка)
$xto, $yto - координаты конца градиента (относитеьно верхнего левого угла рисунка). Если переданы отрицательные значения, градиент не будет ограничен снизу и/или справа
$transparency - если не NULL, то задаёт прозрачность цветов градиента
|
random_pixels($colors=array(), $xfrom=0, $yfrom=0, $xto=-1, $yto=-1, $transparency=NULL) |
public, рисует прямоугольник, заполненный пикселами случайных цветов
передаваемые параметры:
$colors - цвета пикселов, массив вида array($r1,$r2, $g1,$g2, $b1,$b2), где $r1,$r2 - от какого и до какого значения меняется красная составляющая. Аналогично, зелёная и синяя. Или массив вида array($c1,$c2), тогда $c1, $c2 - от какого и до какого значения меняется составляющая цвета пикселов, но пиксели будут чёрно-белыми
Пример: array(250,0,250,0,50,50) - красная: от 250 до 0, зелёная: от 250 до 0, синяя не меняется (всегда 50)
$xfrom, $yfrom - координаты левого верхнего угла прямоугольника (относитеьно верхнего левого угла рисунка)
$xto, $yto - координаты правого нижнего угла прямоугольника (относитеьно верхнего левого угла рисунка). Если переданы отрицательные значения, прямоугольник не будет ограничен снизу и/или справа
$transparency - если не NULL, то задаёт прозрачность цветов пикселов
|
Функции построения графиков (все функции считают координату (0,0) нижним левым углом рисунка) |
graph_set_center($xcenter=0, $ycenter=0) |
public, устанавливает центр графика функции
передаваемые параметры:
$xcenter, $ycenter - координаты центра
|
graph_set_scale($xscale=-1, $yscale=-1) |
public, устанавливает масштаб графика функции
передаваемые параметры:
$xscale, $yscale - масштаб по оси X и Y соответственно. Если передано отрицательное число, то масштаб будет установлен таким, как ячейка сетки (см.пример)
|
graph_set_bounds($bound=false, $xfrom=0, $yfrom=0, $xto=-1, $yto=-1) |
public, устанавливает границы графика функции. Границы устанавливаются относительно центра графика
передаваемые параметры:
$bound - если true, то будут использоваться установленные границы. Если false, график рисуется на всём изображении
$xfrom, $yfrom - координаты левой и нижней границ соответственно
$xto, $yto - координаты правой и верхней границ соответственно. Если переданы отрицательные значения, график будет неограничен справа/сверху
|
graph_set_precision($precision=1) |
public, устанавливает точность рисования графика функции
передаваемые параметры:
$precision - точность. Точность 1 соответствует одному вычислению Y(x) в одной ячейке масштаба. То есть если, например, масштаб установлен как graph_set_scale(10, 10), а точность установлена как
graph_set_precision(0.5), то измерения Y(x) будут проводиться раз в 5 пикселей. Если точность установлена при таком же масштабе как graph_set_precision(2), то измерения Y(x) будут проводиться раз в 20 пикселей (т.е. менее точно)
|
graph($func='0', $handle_errors=true) |
public, рисует график функции
передаваемые параметры:
$func - выражение PHP, представляющее функцию. Например, 'pow($x,2)' или 'sin($x)/2'
$$handle_errors - если true, функция будет отслеживать такие ошибки, как деление на ноль, и предотвращать неправильное рисование графика. Рекомендуется включать
|
Общие функции построения столбчатых и круговых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка) |
diagram_set_add_signes($signes=array()) |
public, устанавливает пользовательские подписи для определённых столбцов/секторов диаграммы
передаваемые параметры:
$signes - массив подписей для соответствующих столбцов/секторов
|
diagram_set_center($x=0, $y=0) |
public, устанавливает координаты начала столбчатой/центра круговой диаграммы
передаваемые параметры:
$x, $y - координаты центра
|
diagram_set_colors($colors=array()) |
public, устанавливает пользовательские цвета столбцов/секторов диаграммы
передаваемые параметры:
$colors - массив цветов для соответствующих столбцов/секторов. Если будет передан массив вида array('rand',$r1,$r2, $g1,$g2, $b1,$b2), то все столбцы диаграммы будут иметь случайные цвета в диапазоне красной составляющей от $r1 до $r2, зелёной и синей составляющих от $g1 до $g2 и от $b1 до $b2 соответственно (см. пример).
Если будет передан массив вида array('rand',$c1,$c2), то столбцы/секторы синхронно будут иметь все цвета в диапазоне от $c1 до $c2 (т.е. будут чёрно-белыми).
|
diagram_set_shadow($shadowx=0, $shadowy=0, $shadowtransparency=60, $shadowcolors=array()) |
public, устанавливает тень столбцов/секторов диаграммы
передаваемые параметры:
$shadowx, $shadowy - смещение тени по осям X и Y соответственно относительно центра/начала диаграммы
$shadowtransparency - уровень прозрачности тени
$shadowcolors - массив пользовательских цветов теней. Если цвета столбцов/секторов диаграммы не были заданы функцией diagram_set_colors, или же были заданы её как случайные, то цвета теней определяются автоматически. Если же они были заданы как определённые цвета, то для соответствия цветов теней и столбцов/секторов диаграммы
необходимо передать в качестве этого параметра такое же массив, какой был передан в функцию diagram_set_colors.
|
diagram_set_sign_params($prefix='', $index='') |
public, устанавливает дополнительные настройки подписей
передаваемые параметры:
$prefix, $index - префикс и постфикс подписей соответственно, добавляются только к тем подписям, которые не были заданы пользователем принудительно функцией diagram_set_add_signes
|
diagram_set_sign_pos($txtx=5, $txty=5) |
public, устанавливает смещение подписей по оси x и y
передаваемые параметры:
$txtx, $txty - смещения подписей
|
diagram_set_signes($signed=true, $signcolor=NULL) |
public, устанавливает настройки подписей диаграммы
передаваемые параметры:
$signed - если true, то подписи будут добавлены
$signcolor - если не NULL, то цвета подписей будут выполнены цветом $signcolor
|
diagram_set_nums($divider=1,$hround=5) |
public, устанавливает округление и деление чисел подписей диаграмм
передаваемые параметры:
$divider - на это число будут делиться все числовые подписи диаграммы
$hround - до скольки знаков после запятой производить округление всех подписей диаграммы
|
Функции построения столбчатых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка) |
diagram_set_size($width=17, $step=3, $max_height=150) |
public, устанавливает размеры столбцов диаграммы
передаваемые параметры:
$width - ширина стобца диаграммы
$step - расстояние между стобцами
$max_height - максимальная высота столбца
|
column_diagram($values) |
public, рисует вертикальную столбчатую диаграмму вправо вверх от центра, установленного diagram_set_center
передаваемые параметры:
$values - массив значений для столбцов. Отрицательные значения поддерживаются
|
string_diagram($values) |
public, рисует горизонтальную столбчатую диаграмму вправо вверх от центра, установленного diagram_set_center
передаваемые параметры:
$values - массив значений для столбцов. Отрицательные значения поддерживаются
|
Функции построения круговых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка) |
make_circle_diagram($values) |
public, рисует круговую диаграмму
передаваемые параметры:
$values - массив значений для секторов. Отрицательные значения не поддерживаются
|
cdiagram_set_size($max_radius=100) |
public, устанавливает радиус круговой диаграммы
передаваемые параметры:
$max_radius - радиус круговой диаграммы
|
Функции построения графиков по точкам (все функции считают координату (0,0) нижним левым углом рисунка) |
hgraph_add_to_legend($addline=true, $addpoint=true) |
public, добавляет последний нарисованный график в легенду (см. пример)
передаваемые параметры:
$addline - если true, перед текстом легенды будет добавлена линия с цветом линии графика
$addpoint - если true, перед текстом легенды будет добавлена текущая точка (см. пример)
|
hgraph_set_center($x=0, $y=0) |
public, устанавливает координаты начала графика
передаваемые параметры:
$x, $y - координаты начала графика
|
hgraph_set_fillcolor($fillcolor=NULL) |
public, устанавливает цвет заливки площади под графиком. Если передано значение NULL, график залит не будет
передаваемые параметры:
$fillcolor - цвет, созданный функцией rgb, или NULL
|
hgraph_set_params($maxheight=100, $interval=20, $hidelines=false) |
public, устанавливает некоторые настройки графика
передаваемые параметры:
$maxheight - максимальная высота графика
$interval - расстояние по горизонтали между точками графика
$hidelines - если true, линии графика нарисованы не будут
|
hgraph_set_signes($signed=true, $sx=0, $sy=0, $index='', $prefix='', $signcolor=NULL, $signs=array()) |
public, устанавливает настройки подписей точек графика
передаваемые параметры:
$signed - если true, к графику будут добавлены подписи
$sx, $sy - смещение подписей от точек по оси x и y соответственно
$index, $prefix - постфикс и префикс стандартных подписей
$signcolor - позволяет задать цвет подписей графика
$signs - массив с пользовательскими подписями точек графика
|
hgraph_set_nums($divider=1,$hround=5) |
public, устанавливает округление и деление чисел подписей графиков
передаваемые параметры:
$divider - на это число будут делиться все числовые подписи графика
$hround - до скольки знаков после запятой производить округление всех подписей графика
|
graph_horizontal($points) |
public, рисует график по точкам $points
передаваемые параметры:
$points - массив значений по оси Y относительно начала, установленного функцией hgraph_set_center, отрицательные значения поддерживаются
|
graph_points_horizontal($points, $signs=array()) |
в общем-то private, но если уж очень надо, то public:), вспомогательная функция класса, рисует график по точкам $points
передаваемые параметры:
$points - массив значений по осям X и Y вида array(array($X1,$Y1), array($X2,$Y2), ... ,array($XN,$YN))
$signs - массив подписей каждой точки
|
Общие функции построения легенд диаграмм и графиков (все функции считают координату (0,0) нижним левым углом рисунка) |
legend_set_border($bordercolor=NULL, $borderwidth=1) |
public, устанавливает рамку легенды
передаваемые параметры:
$bordercolor - позволяет установить цвет рамки
$borderwidth - ширина рамки
|
legend_set_fields($fields=5) |
public, устанавливает отступы от краёв легенды
передаваемые параметры:
$fields - отступы
|
legend_set_fontcolor($fontcolor=NULL, $colortext=false) |
public, устанавливает цвет подписей легенды
передаваемые параметры:
$fontcolor - позволяет задать одинаковый цвет для всех подписей
$colortext - если true, то все подписи будут выполнены цветами, соответствующими цветам своих диаграмм/графиков
|
legend_set_fontname($fontname='') |
public, устанавливает шрифт названия легенды
передаваемые параметры:
$fontname - путь к файлу шрифта. Если передана пустая строка, то будет использоваться текущий шрифт
|
legend_set_name($name='', $size=-1, $fontcolor=NULL) |
public, устанавливает название легенды
передаваемые параметры:
$name - текст названия
$size - размер шрифта названия. Если передано отрицательное значение, то будет использоваться текущий размер
$fontcolor - позволяет задать цвет шрифта названия
|
legend_set_pos($x=0, $y=0) |
public, устанавливает положение легенды на рисунке (т.е. её левый верхний угол)
передаваемые параметры:
$x, $y - координаты левого верхнего угла легенды
|
legend_set_strinterval($strinterval=2) |
public, устанавливает интервал между строками в легенде
передаваемые параметры:
$strinterval - интервал
|
legend_set_texts($texts=array()) |
public, устанавливает подписи легенды
передаваемые параметры:
$texts - массив текстов. Если необходимо не создавать подпись, например, какого-либо столбца диаграммы, запишите в массив null в нужную позицию, т.е. array('подпись1', null, 'ещё подпись'...)
|
Функции построения легенд диаграмм (все функции считают координату (0,0) нижним левым углом рисунка) |
dlegend_set_boxes($colorboxes=false, $type=0, $boxbordercolor=NULL) |
public, устанавливает настройки меток перед подписями легенды
передаваемые параметры:
$colorboxes - если true, метки будут добавлены перед подписями
$type - тип меток: 0 - квадратные, 1 - круглые
$boxbordercolor - если не NULL, то к меткам будут добавлены рамки цвета $boxbordercolor
|
make_diagram_legend() |
public, создаёт легенду
|
Функции построения легенд графиков по точкам (все функции считают координату (0,0) нижним левым углом рисунка) |
hlegend_set_linelen($linelen=10) |
public, устанавливает длину добавляемых к подписям легенды линий
передаваемые параметры:
$linelen - длина линий
|
hlegent_destroy() |
public, уничтожает легенду графиков. Должна вызываться перед созданием легенды новой группы графиков
|
make_hgraph_legend() |
public, создаёт легенду
|
Функции построения координатных осей (все функции считают координату (0,0) нижним левым углом рисунка) |
axis_set_arrows($backarrow=false, $frontarrow=true, $arrowx=12, $arrowy=3) |
public, устанавливает настройки стрелок координатной оси
передаваемые параметры:
$backarrow - если true, стрелка будет добавлена снизу/слева вертикальной/горизонтальной оси
$frontarrow - если true, стрелка будет добавлена сверху/справа вертикальной/горизонтальной оси
$arrowx, $arrowy - длина и высота/2 стрелок соответственно
|
axis_set_center($xcenter=0, $ycenter=0) |
public, устанавливает координату (0,0) координатной оси
передаваемые параметры:
$xcenter, $ycenter - координаты по оси x и y соответственно
|
axis_set_length($backlength=-1, $frontlength=-1) |
public, устанавливает длину координатной оси
передаваемые параметры:
$backlength - длина нижней/левой части вертикальной/горизонтальной оси. Если передано отрицательное значение, ось будет доходить до границы рисунка
$frontlength - длина верхней/правой части вертикальной/горизонтальной оси. Если передано отрицательное значение, ось будет доходить до границы рисунка
|
axis_set_rules($rules1=false, $rules2=false, $linterval=5, $binterval=20, $little=3, $big=8) |
public, устанавливает настройки линейки
передаваемые параметры:
$rules1 - если true, линейка будет добавлена снизу/слева вертикальной/горизонтальной оси
$rules2 - если true, стрелка будет добавлена сверху/справа вертикальной/горизонтальной оси
$linterval - интервал между маленькими делениями линейки
$binterval - интервал между большими делениями линейки
$little, $big - высота маленького и большого деления соответственно
|
axis_set_sign_color($signcolor=NULL) |
public, устанавливает цвет подписей
передаваемые параметры:
$signcolor - цвет подписей или NULL (в этом случае используется текущий цвет)
|
axis_set_sign_pos($signx=4, $signy=12) |
public, устанавливает смещение подписей относительно оси
передаваемые параметры:
$signx - горизонтальное смещение подписей вертикальной оси
$signy - вертикальное смещение подписей горизонтальной оси
|
axis_set_round($rn=-1) |
public, позволяет указать, на сколько знаков после запятой производить округление подписей координатных осей
передаваемые параметры:
$rn - до скольки знаков после запятой производить округление. Если -1, то округление не будет производиться.
|
axis_set_signes($makesign=false, $signnum=1, $signstep=1) |
public, устанавливает настройки подписей
передаваемые параметры:
$makesign - если true, подписи будут созданы
$signnum - шаг цифры подписей
$signstep - шаг подписей в пикселах от центра оси
|
axis_set_start($signfrom=0) |
public, устанавливает стартовый номер подписей
передаваемые параметры:
$signfrom - начальный номер подписей от центра
|
axis_set_symbols($symbols=array()) |
public, устанавливает пользовательские подписи
передаваемые параметры:
$symbols - массив пользовательских подписей оси
|
make_axis($type=0) |
public, рисует координатную ось
передаваемые параметры:
$type - тип оси: 0 - горизонтальная, 1 - вертикальная
|
Функции построения сетки (все функции считают координату (0,0) верхним левым углом рисунка) |
net_set_steps($xstep=10, $ystep=10) |
public, устанавливает шаг сетки
передаваемые параметры:
$xstep, $ystep - шаг сетки по оси x и y соответственно
|
image_net($xfrom=0, $yfrom=0, $xto=-1, $yto=-1) |
public, рисует сетку
передаваемые параметры:
$xfrom, $yfrom - координаты начала сетки (верхний левый угол)
$xto, $yto - координаты конца сетки (нижний правый угол) Если переданы отрицательные значения, то сетка в этих направлениях ограничена не будет
|
Функции построения ступенчатых графиков (все функции считают координату (0,0) нижним левым углом рисунка) |
sgraph_set_values($values=array()) |
public, устанавливает значения для построения ступенчатого графика
передаваемые параметры:
$values - массив передаваемых значений. Должен иметь следующий вид: array(относительная_высота,длина_ступени,...)
|
sgraph_set_arrows($backarrow=true,$frontarrow=false,$arrowx=12,$arrowy=3) |
public, задаёт рисование стрелок у ступеней
передаваемые параметры:
$backarrow - если true, стрелка будет добавлена слева каждой ступени
$frontarrow - если true, стрелка будет добавлена справа каждой ступени
$arrowx, $arrowy - длина и высота/2 стрелок соответственно
|
sgraph_set_maxheight($maxheight=150) |
public, устанавливает максимальную высоту графика
передаваемые параметры:
$maxheight - максимальная высота ступенчатого графика
|
sgraph_set_center($x=0,$y=0) |
public, устанавливает координаты начала графика
передаваемые параметры:
$x,$y - координаты начала графика
|
sgraph_set_fill($transparency=NULL,$r=-1,$g=-1,$b=-1) |
public, устанавливает заливку графика под ступенями
передаваемые параметры:
$transparency - NULL или значение прозрачности цвета заливки графика (если указан NULL, то заливка не будет выполняться)
$r,$g,$b - значения красной, зелёной и синей составляющей цвета заливки (только если $transparency не NULL). Эти параметры можно не задавать, тогда заливка будет сделана текущим цветом.
|
make_sgraph() |
public, рисует ступенчатый график
|
<?php
require_once("dxgraph.php"); //подключаем файл с классом
$img=new dxgraph(600,500,1); //создаём новое изображение true color 600x500
$img->set_color(10,10,10); //устанавливаем почти чёрный цвет
$gray=$img->rgb(100,100,100); //создаём серый цвет
//далее: устанавливаем текущий стиль рисования: 5 пикселей подряд - серые, затем 3 подряд - прозрачные. Получится такая штрихпунктирная линия
$img->image_set_style(array($gray,$gray,$gray,$gray,$gray,IMG_COLOR_TRANSPARENT,IMG_COLOR_TRANSPARENT,IMG_COLOR_TRANSPARENT));
$img->image_grad(0,array(250,0,250,0,50,50),0,0,-1,200); //делаем градиент (см. описание функции)
$img->set_drawing(0,0,1); //устанавливаем рисование с использованием стиля, который только что создали
$img->image_net(0,0,-1,200); //делаем сетку начиная от левого верхнего угла (0,0), неограниченную по оси X и до координаты 200 по оси Y. Сетка будет нарисована с использованием стиля
$img->set_drawing(); //восстанавливаем обычное рисование
$blue=$img->rgb(100,150,250); //создаём синий цвет
$red=$img->rgb(255,50,50); //создаём красный цвет
$yellow=$img->rgb(255,255,155); //светло-жёлтый цвет
$img->set_font(8,0,'arial.ttf'); //устанавливаем шрифт - размер 8, наклон 0 градусов, Arial (arial.ttf лежит в папке с проектом)
$img->image_set_point('s.png',0,0,0); //устанавливаем точку для диаграммы - это смайлик, тип png, для диаграммы, нулевое смещение по оси x, авто по оси y
$img->set_drawing(1); //устанавливаем рисование с заливкой
$img->diagram_set_center(100,320); //устанавливаем центр диаграммы (от левого нижнего угла)
$img->diagram_set_signes(true,$blue); //устанавливаем подписи и их цвет
$img->diagram_set_sign_pos(15); //смещение подписей по оси x - 15 пикселей от диаграммы
$img->diagram_set_colors(array('rand',55,255,55,255,55,255)); //ставим случайные цвета в диапазоне значений r,g,b от 55 до 255
$img->diagram_set_shadow(3,-3);//установим небольшую тень
$img->diagram_set_sign_params('','шт.'); //постфикс всех стандартных (не пользовательских) подписей - "шт."
$img->diagram_set_add_signes(array('первый столбик',null,'третий')); //для первого столбца ставим подпись "первый столбик", для второго останется стандартная, для третьего ставим подпись "третий"
$img->string_diagram(array(1,5,3,-2,4,-1,0,2)); //рисуем горизонтальную диаграмму по значениям в массиве
$img->set_color(0,100,150); //установим сине-зелёный цвет
//далее нарисуем горизонтальную координатную ось
$img->axis_set_center(100,320); //установим центр координатных осей (от левого нижнего угла)
$img->axis_set_length(-1,155); //длина оси - слева от центра неограничена, справа - 155 пикселей
$img->axis_set_signes(true,1,20); //установим подписи, шаг 1 (это необязательно, далее ставим свои), между ними будет по 20 пикселов
$img->axis_set_sign_color($blue); //ставим цвет подписей
$img->axis_set_symbols(array('а','б','в','г','д','е','ж','з')); //ставим свои подписи
$img->axis_set_rules(true,true,5,20); //разлинуем ось сверху и снизу, между небольшими штрихами по 5 пикселей, каждые 20 пикселей - большой штрих
$img->make_axis(0); //рисуем горизонтальную ось
//далее - рисуем вертикальную ось
$img->axis_set_rules(); //уберём разлиновку
$img->axis_set_length(0,-1); //длина оси - снизу=0, сверху - неограничена
$img->axis_set_signes(true,3,20); //установим подписи, шаг 3 (т.е. будут нанесены цифры 0,3,6,9...), между ними будет по 20 пикселов
$img->axis_set_sign_color($red); //ставим цвет подписей
$img->axis_set_sign_pos(-12,0); //смещение подписей влево по оси x на 12 пикселов
$img->axis_set_symbols(); //уберём свои подписи, будут стандартные
$img->make_axis(1); //рисуем вертикальную ось
$black=$img->rgb(0,0,0); //чёрный цвет
$aqua=$img->rgb(200,200,255); //светло-синий
$img->set_color(255,255,150); //ставим текущим светло-жёлтый цвет
//нарисуем легенду для только что нарисованной диаграммы
$img->legend_set_pos(290,480); //установим положение её верхнего левого угла
$img->legend_set_texts(array("1 смайлег\n(гыгы)",'аж 5!',"3 смайла",'-2 :)','четыре','-1!','нуль','два')); //ставим подписи для всех столбцов диаграммы (их 8). Многострочные подписи поддерживаются!
$img->legend_set_fields(5); //ставим небольшой отступ от краёв легенды
$img->legend_set_border($aqua,2); //сделаем рамку светло-синего цвета, толщиной 2 пиксела
$img->legend_set_fontcolor($blue); //установим цвет шрифта
$img->legend_set_name("Тестовая\nлегенда",10,$black); //установим имя легенды 10-м шрифтом чёрного цвета, и здесь многострочные имена работают
$img->legend_set_fontname('comic.ttf'); //точнее, Comic Sans MS, опять-таки comic.ttf лежит в папке с проектом
$img->dlegend_set_boxes(true,1,$black); //установим цветные маркеры (кружочки:)), с рамками чёрного цвета
$img->make_diagram_legend(); //всё, изображаем легенду
$white=$img->rgb(255,255,255); //белый цвет
$sred=$img->rgb(255,55,55); //ещё красный
$img->set_color(0,0,30); //установим тёмно-синий цвет
$params=$img->get_image_params(); //для того, чтоб было понятно назначение функции:) получим параметры рисунка
$img->image_rectangle(0,200,$params[0],$params[1]); //рисуем прямоугольник (с заливкой, помните set_drawing(1)?) от (0,200) до (ширина,высота). Координаты тут считаются от левого верхнего угла
//таким образом, мы сделали заливку другого цвета нижней части рисунка
$img->image_set_style(array($white,$white,$white,$white,$white,$sred,$blue,$sred,$blue,$sred)); //установим новый стиль рисования - 5 белых, красный, синий, красный, синий, красный пиксели
$img->set_drawing(0,0,1); //установим рисование с использованием стиля
$img->image_net(0,200,-1,-1); //рисуем сетку в нижней части рисунка
$img->set_drawing(); //восстанавливаем обычное рисование
//далее снова рисуем горизонтальную координатную ось
$img->set_color(255,255,150); //установим светло-жёлтый цвет
$img->axis_set_center(100,60); //установим новый центр оси
$img->axis_set_length(-1,255); //длина оси - слевы неограничена, справа - 255 пикселов
$img->axis_set_signes(true,1,20); //установим подписи, шаг 1 (т.е. 0,1,2,3,4...), каждые 20 пикселов
$img->axis_set_sign_color($blue); //установим цвет подписей
$img->axis_set_sign_pos(-18,15); //смещение подписей для горизонтальной оси по оси Y -18, для вертикальной оси по оси X 15
$img->make_axis(0); //рисуем горизонтальную ось
//далее снова рисуем вертикальную координатную ось
$img->axis_set_length(50,220); //длина - снизу50 пикселов, сверху - 220
$img->axis_set_signes(true,20,20); //подписи: шаг - 20, каждые 20 пикселов
$img->axis_set_sign_color($red); //установим цвет подписей
$img->make_axis(1); //рисуем вертикальную ось
//сейчас будем рисовать графики по точкам
$img->image_set_point(null,0,1); //установим точку графика - null значит прежний смайлик, не меняем, тип png, но для графика
$img->set_drawing(1); //ставим рисование с заливкой
$color=$img->rgb(0,0,250,50); //синий прозрачный цвет
$img->hgraph_set_center(20,60); //ставим начало графика от носительно левого нижнего угла рисунка
$img->hgraph_set_signes(true,-2,12,'','',$white); //установим подписи графика - смещения по осям X и Y равны -2 и 12, без префиксов и постфиксов, белые
$img->hgraph_set_fillcolor($color); //ставим цвет заливки
$img->set_color(255,0,200); //установим новый цвет
$img->graph_horizontal(array(1,5,4,-1,-0.5,5,3,0,1,1,4,3,1)); //рисуем график по точкам
//теперь немного настроим будущую легенду
$img->legend_set_strinterval(1); //ставим небольшой интервал между подписями
$img->legend_set_fontcolor(NULL,1); //уберём фиксированный цвет подписей легенды и сделаем, чтобы они были соответствующих графикам цветов
$img->legend_set_pos(270,290); //новая позиция легенды
$img->hlegend_set_linelen(31); //а вот теперь добавим к легенде перед подписями куски линий такого же цвета, как графики, длиной 31 пиксел
$img->hgraph_add_to_legend(1,1); //наконец, добавим последний нарисованный график в легенду
//ну одного-то нам будет мало:) Нарисуем ещё один
$img->image_destroy_point(); //удалим старую точку графика
$img->image_set_point('x.png',0,1); //ставим новую точку для графиков
$img->set_font(12,0,'arial.ttf'); //немного увеличим шрифт до 12го размера
$img->hgraph_set_fillcolor($img->rgb(255,0,0,50)); //быстро ставим красный полупрозрачный цвет как заливку графика
$img->set_color(255,255,0); //ставим жёлтый цвет текущим
$img->graph_horizontal(array(0,3,6,-2,-2,4,2,1,0,0,1,2,3)); //рисуем второй график по точкам
$img->hgraph_add_to_legend(1,1); // и его тоже добавляем в легенду
//теперь можно и нарисовать её
$img->set_color(50,50,50); //ставим текущим тёмно-серый цвет
$img->legend_set_name("Тестовая\nлегенда 2",10,$aqua); //ставим заголовок легенды 10-м шрифтом
$img->legend_set_texts(array("График\nпервый","вторая\nкривая:)")); //ставим подписи легенды
$img->make_hgraph_legend(); //и рисуем её
//теперь научимся рисовать круговые диаграммы
$img->diagram_set_center(500,400); //установим её центр
$img->diagram_set_add_signes(array('test',null,'sign')); //подпишем первый и третий сектора как 'test' и 'sign', остальные будут подписаны цифрами, стандартно
$img->diagram_set_sign_pos(3,-3); //установим новое смещение подписей диаграммы: 3 по оси X, -3 по оси Y
$img->set_font(10,0,'arial.ttf'); //меняем размер шрифта до десяти
$img->set_color(100,150,255); //установим новый цвет
$img->make_circle_diagram(array(3,6,2,5,4,0.5,3)); //рисуем круговую диаграмму по значениям
//а теперь неплохо бы и легенду для неё сделать
$img->set_color(50,50,50); //ставим новый цвет
$img->legend_set_pos(450,320); //и новую позицию легенды
$img->legend_set_name("Тестовая\nлегенда 3",12,$aqua); //новое название легенды 12-м шрифтом светло-синим цветом
$img->legend_set_texts(array("цвет 1","график","клёвый","testing","php rulez","legend","dx")); //подписи легенды, в конце массива для 1-го сектора диаграммы, в начале - для последнего
$img->legend_set_border($red,3); //делаем красную рамку толщиной 3 пиксела для легенды
$img->dlegend_set_boxes(true,0); //ставим маркеры - квадраты без рамок
$img->make_diagram_legend(); //рисуем легенду
//далее займёмся рисованием графиков функций, но сначала приготовим координатные оси
$yellow=$img->rgb(255,255,0); //создадим жёлтый цвет
$img->set_line_thickness(2); //сделаем толщину линий 2 пиксела
$img->set_color(200,200,255); //установим текущим светло-синий цвет
//рисуем горизонтальную ось...
$img->axis_set_center(480,20); //ставим центр для осей
$img->axis_set_length(120,110); //установим длину оси: слева 120, справа 110 пикселов
$img->axis_set_signes(true,1,20); //установим подписи - шаг 1, раз в 20 пикселов
$img->axis_set_sign_color($yellow); //сделаем подписи жёлтыми
$img->axis_set_sign_pos(-12,15); //смещение подписей для горизонтальной оси по оси Y -12, для вертикальной оси по оси X 15
$img->make_axis(0); //рисуем горизонтальную ось
//а теперь сделаем вертикальную
$img->axis_set_length(0,150); //установим её длину: снизу 0, сверху 150 пикселов
$img->make_axis(1); //рисуем вертикальную ось
$img->set_line_thickness(1); //сделаем толщину линий 1 пиксел
$img->set_color(200,255,200); //установим светло-зелёный цвет
//сейчас будем рисовать графики
$img->graph_set_center(480,20); //установим центр, как у координатных осей
$img->graph_set_scale(); //установим масштаб по осям: парамтры не переданы, значит, масштаб установится как у сетки (20:1 по оси X, 20:1 по оси Y)
$img->graph_set_precision(0.05); //ставим очень большую точность (вычисления значения функции будут вестись в каждом пикселе, т.к. 0.05x20=1). Точнее некуда:)
$img->graph_set_bounds(true,-120,-40,100,-1); //установим графику границы: от (-120,-40) до (100,правая граница рисунка,так как передано отрицательное значение). Границы ставятся относительно центра графика
$img->graph('sin($x)'); //рисуем синусоиду. Прилично времени занимает, но зато идеально нарисовано (точность очень высокая)
$img->graph_set_bounds(true,-100,-1,100,120); //установим новые границы: от (-100,-1) до (100,200). Заметьте, передача отрицательных значений во втором и третьем параметрах привела к ограничению графика. А если бы отрицательные значения были переданы в четвёртом или пятом, как сделано выше, то график по данному направлению был бы ограничен только краем рисунка
$img->graph('pow($x,2)'); //рисуем квадратичную параболу
//последние штрихи...
$img->set_drawing(); //установим обычное рисование
$img->set_color(200,200,255); //ставим светло-синий цвет
$img->image_make_border(); //рисуем рамку
/*
$img->set_drawing(1);
$img->set_color(255,255,255,80);
$img->image_rectangle(0,0,600,500);
*/
//$img->random_pixels(array(100,250,100,250,100,250),0,0,100,100);
$img->image_output(); //выводим изображение в формате png в браузер
$img->destroy_all(); //освобождаем память, хотя это необязательно, конец скрипта и так
unset($img);
?>
|