"Динамичная" графика: PHP GD, Canvas, SVG, Flash
От: DPP Россия  
Дата: 31.08.06 13:42
Оценка: 15 (1)
Здравствуйте!

Понадобилось отображать дерево в естественном виде (а не TreeView). Дерево очень большое и должно генерироваться динамически.
Предпочтительно у клиента. Пользователь может разорачивать ветки, добавлять связи, редактировать узлы.
Идеальным была бы отправка сервером XML-файла со структурой и рисование в браузере клиента, посредством JavaScript, дерева.

Вижу следующие возможности реализации: image (PHP GD), Canvas, SVG, Flash. С рисованием из PHP я знаком, но этот вариант самый плохой (см. ниже) Ни одной из оставшихся трех технологий я не знаю. Начал искать информацию в инете.

PHP GD -> GIF/JPG
(+) от клиента ничего не требуется, просто выводить
(-) Очень тяжело сделать взаимодействие с пользователем. (конечно можно еще рядом и map/area генерить...) Полная перерисовка при любом изменении

Canvas
(+) рисование у клиента
(-) требуется новый браузер, нельзя вывести текст (?), неестественная модель событий (файктически тоже map — по координатам щелчка). Для IE есть заплатка, но у меня она не заработала...

SVG
(+) рисование у клиента (?), естественные события
(-) для IE нужен плагин Adobe SVG Viewer (2.5Мб)

Flash
(+) распространенность
(-) закрытый бинарный формат (по крайней мере руками не сделаешь), обилие тупых банеров и неудачных реализаций уже ассоциирует у меня Flash с ними. единственное уместное применение flash я видел тут: Карта румынского города Клуж.


Начал я с Canvas. Нашел неплохие ресурсы. Прикольно! Но понял что нет самого важного: нельзя вывести строку текста... (только div:position:absolute)
Начал искать про SVG... Про Flash еще не искал и ничего не знаю. (но уже имею против него предубеждение )
Вот те ссылки что я нашел. Может кому тоже пригодятся.

Canvas
3D Canvas — Web Applications Blog
Safari JavaScript Canvas class
Ajaxian » Canvas
Canvas tutorial — MDC документация от Mozilla (рекомендую!)
Drawing Graphics with Canvas — MDC
Safari JavaScript Programming Topics: Using the Canvas
ExplorerCanvas патч от Google для IE

Canvas Samples
Canvas Fractal Test
Canvas Painter
Canvas shell удобно тестить
Canvas2
Canvascape — 3D walker потрясает воображение
Decorative borders and the Canvas очень не плохо
Function Grapher Online
polyhedra.org: interactive models based on the canvas element сохранить нельзя

SVG
SVG Tutorial от w3c
SVG.org официальный сайт формата
Adobe SVG Viewer плагин для IE
samples примеры от Mozilla, очень хорош <b>тетрис...</b>
Scalable Vector Graphics &mdash; Wikipedia
Inter-Document Communication &mdash; Svg wiki
Opera Features: SVG
SVG support in Opera 9: List of supported elements in SVG
W3C Scalable Vector Graphics (SVG) Test Suite
SVG &mdash; MDC документация от Mozilla


Что можете посоветовать? Какие приемущества/недостатки видите Вы у этих технологий?
Хотелось бы услышать ответ по делу, а не "flash рулит" — "почему" — "потому что я только его знаю, а об остальном даже не слышал"...

Спасибо.

PS: Знаки (?) говорят о том что я не уверен в истинности высказывания.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.