2010-09-01 4 views
1

Я хочу, чтобы нарисовать изображение в PHP, который выглядит как круг в следующем изображении -Как нарисовать этот тип изображения в PHP


Как я должен приступить к этому? Есть ли какой-либо доступный плагин PHP или что-то, что я могу использовать для создания этого типа изображения, или я должен использовать GD-библиотеку и ее собственный код?

EDIT Я ищу библиотеку с открытым исходным кодом.

+0

Это не PHP. Может быть Javascript, jQuery. – pltvs

+1

Это не PHP, а скрипт на стороне сервера, а не JavaScript. Диаграмма создается с помощью запроса GET с сервера. – 2ndkauboy

ответ

6

Не handcode сами, как это было бы очень болезненным. Мне когда-то приходилось кодировать генератор круговой диаграммы.

Есть много графах двигателей там:

  1. JpGraph
  2. GraPHPite
  3. Google Chart Tools

Посмотрите на то, что они предлагают вам. Может быть, не совсем то же самое, но что-то очень близкое.

4

Я не знаю, что вы пытаетесь отобразить на этом изображении, но это похоже на какой-то график, поэтому я бы поискал диаграмму-библиотеку, например. JpGraph, прежде чем снова кодирования все:

http://jpgraph.net/

1

Ваш, вероятно, поиск библиотеки SVG.

raphael также хороший выбор

+0

Хотя raphael довольно приятный, ему нужен JavaScript и браузер, поддерживающий SVG (как в IE, он очень лаконичен). – 2ndkauboy

2

Это похоже на гистограмме преобразуется в полярных координатах.

Вот простой способ создания такой картины:

  • Нарисовать свои бары (либо с использованием библиотеки диаграмм или самостоятельно) без каких-либо зазоров между полосами. Убедитесь, что нет пробелов слева и справа от ваших баров.

  • преобразование изображения в полярных координатах с использованием gdImageSquareToCircle() функции Б-жьей

Вы, вероятно, возможно, придется вращать бруски на 180 ° (т.е. стержни должны расти сверху вниз) до трансформации изображения.

2

Это:

$im = imagecreatetruecolor(500, 500); 
imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255)); 


imagefilledarc($im, 250, 250, 500, 500, -90, -80, 0xFF0000, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 400, 400, -80, -40, 0xFFFF00, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 150, 150, -40, 0, 0xFF00FF, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 450, 450, 0, 20, 0x00FFFF, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 350, 350, 20, 50, 0x1276A9, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 100, 100, 50, 95, 0x000000, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 400, 400, 95, 125, 0x1E1FFF, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 150, 150, 125, 160, 0x45ABAB, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 500, 500, 160, 180, 0xFFA7F1, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 300, 300, 180, 235, 0xA91234, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 240, 240, 235, 255, 0xA13ACE, IMG_ARC_PIE); 
imagefilledarc($im, 250, 250, 300, 300, 255, 270, 0x00FF00, IMG_ARC_PIE); 

header("Content-type: image/png"); 
imagepng($im); 

делает это:

Image does not exist

Смежные вопросы