Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Круговая диаграмма

Сообщения:  [1-10]   [11-19] 

 
 автор: sidPR   (14.04.2007 в 13:46)   письмо автору
 
   для: Trianon   (04.04.2007 в 21:19)
 

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


P.S. слышал еще о выводе средствами PHP флеш заставок или чтото подобное ???? может поможет???

   
 
 автор: Trianon   (04.04.2007 в 21:19)   письмо автору
 
   для: sidPR   (04.04.2007 в 21:13)
 

Врядли. Разве что круг поверх вывести.
$color = imagecolorallocate($img, 0, 0, 0);
imageellipse($img,$cx,$cy,$w,$h, $color);
перед imagegif()

   
 
 автор: sidPR   (04.04.2007 в 21:13)   письмо автору
 
   для: Trianon   (04.04.2007 в 17:52)
 

а качество круга улучшить возможно?

   
 
 автор: Trianon   (04.04.2007 в 17:52)   письмо автору
 
   для: sidPR   (04.04.2007 в 17:04)
 

Потому что весь этот комментарий вылез перед кодом картинки.
Комментарии к скриптам помещают внутрь тега <?php ?>
Можно сделать более приемлемо, если формировать не .jpg, а .gif-файл строками

    header ("Content-type: image/gif");  
    imagegif($img);  

в соответствующем месте скрипта.
См.аттач.

   
 
 автор: sidPR   (04.04.2007 в 17:04)   письмо автору
 
   для: Trianon   (04.04.2007 в 16:22)
 

Все у меня просто спереди скрипт был закоментирован свой блок... но почему он так отреогировал я непойму...

и еще она ужасно выглядит ? я видел где риализованная с мягкими кроями ... плавными... а тут одни пиксели :(

   
 
 автор: Trianon   (04.04.2007 в 16:22)   письмо автору
 
   для: sidPR   (04.04.2007 в 16:15)
 

1. Этот скрипт требует файл data.dat
2. Я попросил в архиве не просто так. Это единственный способ убедиться, что Вы при копировании не натолкали в начало пробелов или пустых строк.
3. У меня этот скрипт работает. см аттач.

   
 
 автор: sidPR   (04.04.2007 в 16:15)   письмо автору
 
   для: 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($img255255255); 
    
imagefill($img11$white); 
    
$background imagecolorallocate($img240240240); 
    
$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;} 
?> 

   
 
 автор: Trianon   (04.04.2007 в 15:56)   письмо автору
 
   для: sidPR   (04.04.2007 в 15:54)
 

по-моему, это я предложил Вам туда заглянуть.
Интерес представлял не этот, а именно тот, который у Вас.

   
 
 автор: sidPR   (04.04.2007 в 15:54)   письмо автору
 
   для: Trianon   (04.04.2007 в 14:03)
 

http://softtime.ru/info/task.php?id_article=88

   
 
 автор: Trianon   (04.04.2007 в 14:03)   письмо автору
 
   для: sidPR   (04.04.2007 в 13:56)
 

прикрепите скрипт в архиве.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования