Перейти к содержимому

Сервис обмена электронных валют


Рисование графиков средствами GDLib

#1 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0
0

Отправлено 16 Ноябрь 2009 - 15:41

Есть страница, на которой будет отображаться разная статистика.

написал класс, который должен для начала просто нарисовать черный фон.

class graph {
function draw($width=200, $height=200) {
$img = imagecreatetruecolor($width, $height);
imagepng($img);
imagedestroy($img);
}
}


И есть код, в котором это должно запускаться. С помощью тэга IMG вряд-ли получится отправить много параметров.
Когда обращаюсь к классу, он пишет бред какой-то.

$gd = new graph();
$gd->draw(200, 300);

Даже когда это обращение помещаю в IMG, ничего не меняется.

Выводит вот это:
‰PNG 

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Ноябрь 2009 - 17:23

gaaarfild, посмотри скрипт в аттаче, у меня всё работает. Возможно ты где-тьо опечатался или не правильно в IMG вставлял...

‰PNG 

Это при обращении к странице где расположен код создающий объект?

Вообще у тебя не правильное представление о классах.
Если ты хочешь создать что-то на подобии библиотеки функций, делай класс статическим и обращайся к функциям без создания объекта через оператор расширения видимости
ClassName::methodName($params);


Понятие класса представляет собой тип схожих объектов имеющих одинаковое поведение но разные состояния.
У тебя же твой объект как не имеет ни одного состояния(переменной класса), так и не имеет даже конструктора, что явно указывает на его статичность. Конечно в PHP 4 явно создать статический класс нельзя, но это и не важно, если этим классом будешь пользоваться только ты. А вообще в понимании класса помогает хорошая документация.

Прикрепленные файлы

  • Прикрепленный файл  graph.zip   862байт   Количество загрузок: 69

  • 0

#3 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 16 Ноябрь 2009 - 17:30

Я понимаю принцип классов. Но я упомянул в тексте, что я ищу ошибку, поэтому скинул пока класс, который ничего кроме черного фона не рисует. А он будет более серьезным. Для рисования графиков.

И я не сомневаюсь, что ваш вариант выводит. У меня тоже. Но я же прошу указать, каким еще способом можно загрузить файл, создающий изображение кроме как в Тэге IMG.

Объясню, для чего мне это нужно.

Я хочу в своих скриптах использовать возможность чертить графики. Для статистики.

Но если просто присоединять файл, как в этом случае, то параметры изображения, рассчетов и так далее, не передать. максимум через GET запрос. Но многого там не передашь.
Вот. Надеюсь, не слишком сумбурно.
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Ноябрь 2009 - 19:14

gaaarfild,
1) Есть возможность передавать через сессии, или же проще.
2) У нас есть массив с параметрами, мы его сериализуем - serialize() в строку и кодируем с помощью encode_base64(). Как же себя обезопасить, зависит от твоих предпочтений, хоть несколько рандомных символов добавить в начало сгенерированной строки. И передаём эту строку, а на той стороне декодируем и десериализуем.
3) Для черчения графиков не обязательно их тут же выводить на экран, стоит их сохранить во временный файл и затем возвращённый путь до картинки или ещё что-то использовать в своих скриптах. Например тот же LiveInternet не потянул бы если бы все их графики каждую секунды перестраивались, у них стоит какой-то скрипт на CURL и запускается каждые хз сколько минут или часов, скорее всего раз в день. Так что у вас есть два выхода.

Либо передавать строку с параметрами через GET или SESSION, либо создавать картинки на лету.
  • 0

#5 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 17 Ноябрь 2009 - 10:25

Спасибо большое. Буду пробовать.
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Ноябрь 2009 - 10:29

gaaarfild, есть ещё вариант обращаться в Flash, как сделано на mail.ru В этой области векторной графики предоставлено больше инструментов для рисования, только вот изучить их будет сложнее, т.к. AS от части является ООП языком. Надо знать и понимать иерархическую структуру объектов уже существующих и только созданных.
  • 0


Оформление форума – IPBSkins.ru