|
| |
|
|
| |
для: Trianon
(04.04.2007 в 21:19)
| | | Люди добрые подскажите плиз где достать функцию или библиотеку мне нужно просто по результатм построить круговую диаграммку но исключительно чтобы оны была четкая с плавными гранями и не обрубками пикселей по краям... пожалуйста может ктото уже заморачивался на эту тему...
P.S. слышал еще о выводе средствами PHP флеш заставок или чтото подобное ???? может поможет??? | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 21:13)
| | | Врядли. Разве что круг поверх вывести.
$color = imagecolorallocate($img, 0, 0, 0);
imageellipse($img,$cx,$cy,$w,$h, $color);
перед imagegif() | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 17:52)
| | | а качество круга улучшить возможно? | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 17:04)
| | | Потому что весь этот комментарий вылез перед кодом картинки.
Комментарии к скриптам помещают внутрь тега <?php ?>
Можно сделать более приемлемо, если формировать не .jpg, а .gif-файл строками
header ("Content-type: image/gif");
imagegif($img);
|
в соответствующем месте скрипта.
См.аттач. | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 16:22)
| | | Все у меня просто спереди скрипт был закоментирован свой блок... но почему он так отреогировал я непойму...
и еще она ужасно выглядит ? я видел где риализованная с мягкими кроями ... плавными... а тут одни пиксели :( | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 16:15)
| | | 1. Этот скрипт требует файл data.dat
2. Я попросил в архиве не просто так. Это единственный способ убедиться, что Вы при копировании не натолкали в начало пробелов или пустых строк.
3. У меня этот скрипт работает. см аттач. | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 15:56)
| | | Все тоже самое :)
<?php
$fileN = "data.dat";
$h = $w = 300;
//Цвета секторов (всего 15).
$r[] = 72; $g[] = 209; $b[] = 204;
$r[] = 199; $g[] = 21; $b[] = 133;
$r[] = 25; $g[] = 25; $b[] = 112;
$r[] = 245; $g[] = 255; $b[] = 250;
$r[] = 255; $g[] = 228; $b[] = 225;
$r[] = 255; $g[] = 228; $b[] = 118;
$r[] = 255; $g[] = 222; $b[] = 173;
$r[] = 0; $g[] = 0; $b[] = 128;
$r[] = 253; $g[] = 245; $b[] = 230;
$r[] = 255; $g[] = 165; $b[] = 0;
$r[] = 218; $g[] = 112; $b[] = 114;
$r[] = 205; $g[] = 133; $b[] = 63;
$r[] = 255; $g[] = 0; $b[] = 0;
$r[] = 0; $g[] = 255; $b[] = 0;
if (is_file($fileN))
{
$fd = fopen($fileN, "r");
$sum = 0;
while (!feof($fd))
{
$a = trim(fgets($fd));
//Отбрасываю пустые строки
if (!empty($a))
{
//В $exp[1] - название, в $exp[0] - кол-во.
$exp = explode(" ", $a);
$sector[$exp[1]] = $exp[0];
$sum += $exp[0];
}
}
fclose($fd);
//или рисуем диаграмму
if (isset($_GET['img']))
{
$img = imagecreatetruecolor($w+1,$h+1);
if (!$img) exit;
$white = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 1, 1, $white);
$background = imagecolorallocate($img, 240, 240, 240);
$cx = $cy = $h/2;
imagefilledellipse($img ,$cx, $cy, $w ,$h, $background);
}
//или выводим таблицу
else
{
$table = "<html><head><title>диаграмма</title></head>
<body>
<img src=".$_SERVER['PHP_SELF']."?img=diagram>
<table border=1 cellpadding='3' cellspacing='0'>
<tr align='center'>
<td> цвет </td>
<td> кол-во </td>
<td> % </td>
<td> пояснение </td>
</tr>";
}
$start = 0; //Начальный угол
$ostatok = 0; //Здесь размер непрорисованных секторов.
$i = 0; //Сётчик
// В $key - название, в $val - кол-во.
foreach ($sector as $key =>$val)
{
$ugol = $val / $sum * 360;
//Сектор < 2% (2% от 360 = 7.2).
if ($ugol > 7.2)
{
//или рисуем диаграмму
if (isset($_GET['img']))
{
$color = imagecolorallocate($img, $r[$i], $g[$i], $b[$i]);
$angle_sector = $start + $ugol + $ostatok;
imagefilledarc($img ,$cx, $cy, $w, $h, $start, $angle_sector, $color, "IMG_ARC_PIE");
$start += $ugol;
}
//или выводим таблицу
else
{
$table .= "
<tr align='center'>
<td bgcolor='".sprintf("#%02x%02x%02x", $r[$i], $g[$i], $b[$i])."'></td>
<td> $val </td>
<td> ".sprintf("%.2f",($val/$sum*100))." % </td>
<td> $key </td>
</tr>";
}
$i++;
}
else
{
//Не прорисованный сектор
$ostatok += $ugol;
$table .= "
<tr align='center'>
<td> нет </td>
<td> $val </td>
<td> ".sprintf("%.2f",($val/$sum*100))." % </td>
<td> $key </td>
</tr>";
}
//Если секторов >= 15.
if ($i >= 15) break;
}
//или рисуем диаграмму
if (isset($_GET['img']))
{
header ("Content-type: image/jpeg");
imagejpeg($img);
}
//или выводим таблицу
else
{
$table .="
</table>
</body>
</html>";
echo $table;
}
}
else {echo "файл data.dat не найден";exit;}
?>
|
| |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 15:54)
| | | по-моему, это я предложил Вам туда заглянуть.
Интерес представлял не этот, а именно тот, который у Вас. | |
| |
|
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 13:56)
| | | прикрепите скрипт в архиве. | |
| |
|
|
|