Справочник по PHP




Графические примитивы - часть 3


Эта функция выполняет сплошную заливку одноцветной области, содержащей точку с координатами (x, y) цветом color. Нужно замерить, что современные алгоритмы заполнения работают довольно эффективно, так что не стоит особо заботиться о скорости ее работы. Будут закрашены только те точки, к которым можно проложить "одноцветный сильно связанный путь" из точки x, y.

Две точки называются связанными сильно, если у них совпадает, по крайней мере, одна координата, а по другой координате они отличаются не более, чем на 1 в любую сторону.

imageFillToBorder

Заливка области, ограниченной бордюром.

Синтаксис :

int imageFillToBorder(int im, int x, int y, int border, int color)

Эта функция очень похожа на imageFill(), только она выполняет закраску цветом color не одноцветных точек, а любых, но до тех пор, пока не будет достигнута граница цвета border.

imagePolygon

Рисует многоугольник с заданными вершинами.

Синтаксис :

int imagePolygon(int im, array points, int num_points, int color)

Эта функция рисует в изображении im многоугольник, заданный своими вершинами. Координаты углов передаются в массиве points, причем $points[0]=x0, $points[1]=y0, $points[2]=x1, $points[3]=y1 и т.д.

Параметр num_points указывает общее число вершин - на тот случай, если в массиве их больше, чем нужно нарисовать. Многоугольник не закрашивается - только рисуется его граница цветом color.

<?php// создаем изображение 400x300$image = imagecreate(400, 300); // устанавливаем цвет бордюра многоугольника$col_poly = imagecolorallocate($image, 255, 255, 255); // рисуем многоугольникimagepolygon($image,              array (                    0, 0,                    100, 200,                    300, 200             ),             3, $col_poly); // вывод картинки в браузерheader("Content-type: image/png");imagepng($image);?>

imageFilledPolygon

Рисует закрашенный многоугольник с заданными вершинами.

Синтаксис :

int imageFilledPolygon(int im, array points, int num_points, int color)

Эта функция делает практически то же самое, что и imagePolygon(), за исключением одного очень важного свойства: полученный многоугольник целиком заливается цветом color.

При этом правильно обрабатываются вогнутые части фигуры, если она не выпукла.

<?php// задаем массив с координатами углов$values = array(  0  => 40,    // x1  1  => 50,    // y1  2  => 20,    // x2  3  => 240,   // y2  4  => 60,    // x3  5  => 60,    // y3  6  => 240,   // x4  7  => 20,    // y4  8  => 50,    // x5  9  => 40,    // y5  10 => 10,    // x6  11 => 10,    // y6); // создаем картинку 250x250$im = imagecreate(250, 250); // задаем цвет заполнения многоугольника$blue = imagecolorallocate($im, 0, 0, 255); // рисуем многоугольникimagefilledpolygon($im, $values, 6, $blue ); // вывод каринки в браузер и ее закрытиеheader('Content-type: image/png');imagepng($im);imagedestroy($im);?>




Содержание  Назад  Вперед