Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Сборник статей
 
 

Рисование эллипса

Автор: mike (www.codenet.ru)

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

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

где,

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

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

<?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);
?>

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

2

Обратите внимание: эта функция добавлена в 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 - цвет.

Пример 2. Рисование эллипса с помощью функции 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);
?>

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

1

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

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

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

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

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

<?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);
?>

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

3

Обратите внимание: эта функция добавлена в 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)

Пример 4. Рисование закрашенного эллипса с помощью функции 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);
?>

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

4

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

5

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

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

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

<?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);
?>
            

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

6

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

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

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

<?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);
?>
            

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

7

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

 
 » Обсудить эту статью на форуме

 
 Сборник статей 
 Содержание раздела 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS