|
|
|
| Скажите как разбить цилиндр(ОВАЛ) на секторы, при этом они должны быть различны в цвете!
Если у кого есть готове решение или может подсказать, подскажите очень нужно!
Если кто не понял, то:
необходимо нарисованный с помощью gdlib овал разбить на секторы, с определенной процентовкой, покарсить каждый разбитый сектор в определенный цвет!
Т.е. что то сделать подобное как при просмотре свободного места на винте!
Заранее благодарен! | |
|
|
|
|
|
|
|
для: cernos
(11.11.2005 в 23:59)
| | Пример из книги "PHP5 на примерах".
<?
$sectors = array(50,25,74,16);
// Создание пустого изображения, размеров 200 на 200 пикселей
$img = imagecreatetruecolor (200, 200);
// Если изображение не создано - выполнение скрипта останавливается
if (!$img) exit();
// Определение белого цвет на изображении
$white = imagecolorallocate($img, 255, 255, 255);
// Заливка изображения белым цветом
imagefill($img, 1, 1, $white);
// Определение цвета фона диаграммы
$background = imagecolorallocate($img, 240, 240, 240);
// Переменные $cy и $cy определяют центр диаграммы
$cx = $cy = 100;
// Переменные $w и $h определяют ширину и высоту диаграммы
$w = $h = 100;
// Рисование окружности.
imagefilledellipse($img, $cx, $cy, $w, $h, $background);
// Инициализация начального угла сектора
$start = 0;
foreach ($sectors as $value)
{
// Формирование цвета для каждого сектора
// цвет формируется случайным образом
$color = imagecolorallocate($img,
rand(0, 255), rand(0, 255), rand(0, 255));
// Определение конечного угла сектора
$angle_sector = $start + $value;
// Рисование сектора
imagefilledarc($img, $cx, $cy, $w, $h, $start, $angle_sector,
$color, "IMG_ARC_PIE || IMG_ARC_EDGED");
// Увеличение начального угла, сектора
$start += $value;
}
// Вывод изображения в браузер, в формате PNG
header ("Content-type: image/png");
imagepng($img);
?>
|
| |
|
|
|