Scatter Plot 3D для веб-приложений - PullRequest
3 голосов
/ 10 сентября 2009

Я ищу компонент Scatter Plot 3D для веб-приложения. Прямо сейчас я использую JMathPlot (внутри Java-апплета), чтобы произвести что-то вроде этого:

альтернативный текст http://jmathtools.berlios.de/lib/exe/fetch.php?media=scatterplot3d.png

С JMathPlot все в порядке, но не хватает некоторых необходимых функций (мне особенно интересно иметь всплывающие подсказки для точек графика).

Есть ли альтернативы? Любая интерактивная веб-технология (javascript, java-апплет, flash, silverlight) подойдет. Пользователь должен иметь возможность поворачивать / масштабировать график и видеть всплывающие подсказки при наведении курсора мыши на точку.

Ответы [ 6 ]

3 голосов
/ 20 сентября 2009

Существует несколько простых 3D-движков как для silverlight (например, http://www.markdawson.org/Kit3D/ или http://www.codeplex.com/aXelerateSL3D), так и для flash ( список здесь ), если вы знаете либо ActionScript, VB.NET или C #, легко создать такую ​​диаграмму самостоятельно.

Версия 10 флеш-памяти даже имеет , встроенный в простой «3d движок» :

Flash Player 10 позволяет перевод XYZ и XYZ вращение 2D поверхностей на оси X, Y и Z. Flash Player 10 также отображает перспективу и камеру углы, которые вы устанавливаете для создания 3D-подобного эффекты.

Это, вероятно, все, что вам нужно, чтобы быстро построить его самостоятельно.

Поскольку JMathPlot является открытым исходным кодом, его можно использовать в качестве альтернативы.

2 голосов
/ 23 сентября 2009

Предложение Джеймса Блэка использовать тег canvas - очень хороший вариант, но для него требуется не обновленный браузер IE. Или это? Благодаря Google, вы сможете использовать Chrome Renderer в IE . Таким образом, вы настроите динамические графики на браузеры с поддержкой HTML5 (Gecko, Webkit и Presto) и попросите пользователей IE установить Google Add, как только он выйдет. canvas работает в разных браузерах благодаря встроенной поддержке всего, что не связано с IE, а также к Explore Canvas для IE. SVG поддержка также доступна для всех браузеров спасибо до некоторые плагины для IE . Обратите внимание, что если вам требуется Chrome Renderer для IE, вам больше ничего не нужно.

Вы можете либо использовать canvas или svg для построения графиков , а уже есть несколько библиотек для этого . Обе технологии позволяют создавать динамические графики , но у них есть несколько разных подходов.

<b>SVG</b>                                        <b>canvas</b>
-------------------------------------------------------------------------------
Has scene DOM (SVG DOM, though)            Single HTML element, 
                                           rendering script-driven
Deals in shapes                            Deals in pixels
Somewhat hard to mix with HTML (not XHTML) Behaves like an image in both
Event handling easy                        Event handling hard

Я бы подумал, что я бы пошел с SVG, чтобы сделать то, что вы хотите, так как добавить к нему динамические метки будет очень просто, но будет трудно создать действительно гибкий API для псевдо 3D рассеяния участки.

Проблема с svg заключается в том, что, пытаясь создать очень гибкий язык, вы получаете очень сложный. Здесь вы можете увидеть код, написанный в обеих библиотеках, которые делают одно и то же.

SVG

var rect = document.createElementNS(SVG_NS, "rect");
rect.setAttribute("x", "5");
rect.setAttribute("y", "5");
rect.setAttribute("width", "20");
rect.setAttribute("height", "20");
rect.setAttribute("fill", "red");
parent.appendChild(rect);

var poly = document.createElementNS(SVG_NS, "polygon");
poly.setAttribute("fill", "green");
poly.setAttribute("points", "-40,40 0,-40, 40,40");
parent.appendChild(poly);

Canvas

with (ctx) {
  fillStyle = "red";
  fillRect(5, 5, 20, 20);
}

with (ctx) {
  fillStyle = "green";
  beginPath();
  moveTo(-40, 40);
  moveTo(0, -40);
  moveTo(40, 40);
  closePath();
  fill();
}
2 голосов
/ 20 сентября 2009

Возможно, вы также захотите посмотреть Обработка . Они могут не иметь готовых компонентов, но в Интернете есть тысячи хороших примеров исходного кода.

1 голос
/ 31 марта 2010

Embedded flash object

FlashAndMath имеет несколько интересных библиотек для такого рода вещей:

http://www.flashandmath.com/advanced/contours/combo.html

0 голосов
/ 11 августа 2012

Трехмерный точечный график от canvasXpress предлагает альтернативу JavaScript и Canvas. http://canvasxpress.org/scatter3d.html

0 голосов
/ 23 сентября 2009

Вы могли бы просто посмотреть на это с помощью тега canvas, и для любого обновленного браузера, кроме IE, можно получить всплывающие подсказки, поскольку в нем есть события, как и в любом другом HTML-теге.

Вы можете получить большую часть функциональности в IE, используя excanvas, мне просто не повезло, когда я рисовал текст.

Это не библиотека, но она предоставит вам возможность работать только в формате html с javascript.

...