Рецепт №96. Из книги «128 рецептов php»
Перейти к оглавлению
Для рисования эллипсов существует функция imageellipse, которая принимает несколько параметров: центр эллипса по осям X и Y, ширина и высота, цвет. Поскольку растянутость и сжатие можно регулировать параметрами ширины и высоты, рисование эллипсов происходит очень просто. Эту же функцию можно использовать при нанесении на изображение окружности, главное, чтобы ширина и высота были одинаковыми.
С помощью аналогичной функции imagefilledellipse, можно рисовать эллипсы и окружности, залитые выбранным цветом.
Для рисования дуги, описанные выше функции, не подходят, в этом случае следует использовать imagearc. Эта функция принимает также несколько параметров: центр эллипса по осям X и Y, ширина и высота, угол начала и угол окончания дуги, цвет.
Пример:
$width = 200; // ширина изображения $height = 250; // высота изображения // создаем изображение, на котором будем рисовать $img = imagecreatetruecolor($width, $height); // цвет заливки фона $rgb = 0xFFFFFF; // заливаем холст цветом $rgb imagefill($img, 0, 0, $rgb); // определяем цвета $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $black = imagecolorallocate($img, 0, 0, 0); // координаты центра $x = 100; $y = 50; // радиус $radius = 30; // Рисуем красный круг imageellipse( $img, $x, $y, $radius * 2, $radius * 2, $red ); // координаты центра $x = 100; $y = 120; // радиус $radius = 30; // Рисуем закрашенный зеленый круг imagefilledellipse( $img, $x, $y, $radius * 2, $radius * 2, $green ); // координаты центра $x = 100; $y = 175; // ширина $width = 60; // высота $height = 30; // Рисуем закрашенный синий эллипс imagefilledellipse( $img, $x, $y, $width, $height, $blue ); // координаты центра $x = 100; $y = 200; // ширина $width = 100; // высота $height = 60; // угол начала дуги $degree_start = 0; // угол окончания дуги $degree_end = 180; // рисуем черную дугу imagearc( $img, $x, $y, $width, $height, $degree_start, $degree_end, $black ); // заголовок для браузера header("Content-Type: image/png"); // выводим результат в браузер imagepng($img); // очищаем память после выполнения скрипта imagedestroy($img);