Справочник функций

Ваш аккаунт

Логин:
Пароль:
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
Убрать блок ВКонтакте навсегда

Последние темы форума

Показать новые сообщения »

Почтовая рассылка



Подписчиков: 19086
Последний выпуск: 12.01.2012

Рисование эллипса и круга

Автор: mike, www.codenet.ru
28 февраля 2005 года

Для рисования эллипса используется функция imageellipse:

int imageellipse (resource image, int cx, int cy, int w, int h, int color)

где,

  • image - идентификатор изображения;
  • cx, cy - координаты центра эллипса;
  • w - ширина эллипса (диаметр);
  • h - высота эллипса (диаметр);
  • color - цвет.

Пример 19. Рисование эллипса:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($im, 255, 255, 255);

imageellipse($im,160,120,200,150,$ink);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Обратите внимание: эта функция добавлена в PHP 4.0.6 и требует библиотеки GD 2.0.2

Если у вас более ранняя версия PHP (или GD), то для рисования эллипса вы можете использовать функцию imagearc:

int imagearc (resource image, int cx, int cy, int w, int h, 0, 360, int color)

где,

  • image - идентификатор изображения;
  • cx, cy - координаты центра эллипса;
  • w - ширина эллипса;
  • h - высота эллипса;
  • color - цвет.

Пример 20. Рисование эллипса с помощью функции imagearc:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($im, 255, 255, 255);

imagearc($im,160,120,200,150,0,360,$ink);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Рисование закрашенного эллипса

Для рисования закрашенного эллипса используется функция imagefilledellipse:

int imagefilledellipse (resource image, int cx, int cy, int w, int h, int color)

Она рисует закрашенный эллипс цвета color с центром в точке cx:cy, высотой h и шириной w пикселей.

Пример 21. Рисование закрашенного эллипса:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($im, 255, 128, 255);

imagefilledellipse($im,160,120,200,150,$ink);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Обратите внимание: эта функция добавлена в PHP 4.0.6 и требует библиотеки GD 2.0.2

Если у вас GD версии 2.0.1, то для рисования эллипса вы можете использовать функцию imagefilledarc:

bool imagefilledarc (resource image, int cx, int cy,
                     int w, int h, 0, 360, int color, IMG_ARC_PIE)

Пример 22. Рисование закрашенного эллипса с помощью функции imagefilledarc:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($im, 255, 128, 255);

imagefilledarc($im,160,120,200,150,0,360,$ink,IMG_ARC_PIE);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Обратите внимание! Эллипс нарисованный с помощью функции imagefilledarc выглядит меньше, несмотря на то что фактически имеет тот же радиус. Это отличие хорошо иллюстрирует следующий рисунок:

«Пустой» эллипс

Если вы хотите нарисовать "пустой" эллипс, то можно воспользоваться комбинацией функций imagearc и imagefilledarc. Первая функция нарисует закрашенный эллипс цветом фона, а вторая нарисует рамку цветом чернил.

Пример 23. Рисование "пустого" эллипса:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$black = imagecolorallocate($im, 0, 0, 0);
$ink = imagecolorallocate($im, 255, 255, 255);
$gray = imagecolorallocate($im, 128, 128, 128);

// Нарисуем 100 случайных линий
for ($i=0;$i<100;$i++) {
	$x1=rand(0,319);
	$x2=rand(0,319);
	$y1=rand(0,239);
	$y2=rand(0,239);
	imageline($im,$x1,$x2,$y1,$y2,$gray);
	}

// Сотрем внутреннюю часть эллипса
imagefilledarc($im,160,120,200,150,0,360,$black,ARC_PIE);

// Нарисуем рамку
imagearc($im,160,120,200,150,0,360,$ink);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Рисование окружности и круга

Так как круг является частным случаем эллипса, то для его рисования используются те же функции, только задаются одинаковые диаметры по высоте и ширине.

Пример 24. Вывод круга и окружности:

<?php
header ("Content-type: image/png");
$im = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

// Круг
imagefilledarc($im,110,110,100,100,0,360,$red,IMG_ARC_PIE);

// Окружность
imagearc($im,210,130,100,100,0,360,$ink);

imagepng($im);
imagedestroy($im);
?>

Результат работы этой программы выглядит следующим образом:

Смотрите также:


Назад | Оглавление | Далее

Оставить комментарий

Оставлять комментарии могут только зарегистрированные пользователи.

Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.

Комментарии

1. mike / 20 апреля 2005, 09:49:54
Мне нравитсяМне не нравится

<blockquote><small>Цитата:<hr size=1>
1. Когда же будут новые уроки? 8-)
2. Очепятка в "Примере 24. Вывод круга и окружности" в строке
imagefilledarc($im,110,110,100,100,0,360,$red,ARC_PIE);
[/quote]1. По понедельникам
2. Исправлено

2. WishMaster / 20 апреля 2005, 03:54:57
Мне нравитсяМне не нравится

Респект, mike!!
1. Когда же будут новые уроки? 8-)
2. Очепятка в "Примере 24. Вывод круга и окружности" в строке
imagefilledarc($im,110,110,100,100,0,360,$red,ARC_PIE);

ARC_PIE исправить на IMG_ARC_PIE
(см. описание функции)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог