Точечная диаграмма 3D для веб-приложения
-
05-07-2019 - |
Вопрос
Я ищу 3D-компонент точечной диаграммы для веб-приложения.Прямо сейчас я использую JMathPlot ( математический график) (внутри Java-апплета), чтобы создать что-то вроде этого:
альтернативный текст http://jmathtools.berlios.de/lib/exe/fetch.php?media=scatterplot3d.png
JMathPlot работает нормально, но в нем отсутствует некоторая необходимая функциональность (меня особенно интересуют всплывающие подсказки для точек графика).
Есть ли какие-то альтернативы?Любая интерактивная веб-технология (javascript, java-апплет, flash, silverlight) подойдет.Пользователь должен иметь возможность поворачивать / масштабировать график и видеть всплывающие подсказки при наведении курсора мыши на точку.
Решение
Существует несколько простых 3D-движков для silverlight (например. http://www.markdawson.org/Kit3D/ или http://www.codeplex.com/aXelerateSL3D) и вспышка (список здесь) учитывая, что вы знаете ActionScript, VB.NET или C #, создать такую диаграмму самостоятельно должно быть несложно.
Версия 10 flash даже имеет встроенный простой "3d движок":
Flash Player 10 позволяет выполнять xyz-перевод и xyz-поворот 2D-поверхностей по осям x, y и z.Flash Player 10 также отображает перспективу и камеру углы, которые вы устанавливаете для создания 3D-подобных эффектов.
Это, наверное, все, что вам нужно, чтобы быстро построить его самостоятельно.
Поскольку JMathPlot имеет открытый исходный код, другим вариантом может быть его адаптация для ваших нужд.
Другие советы
Возможно, вы также захотите изучить обработку . Они могут не иметь готовых компонентов, но в Интернете есть тысячи хороших примеров исходного кода.
Предложение Джеймса Блэка использование тега canvas - это очень хороший вариант, но для него требуется браузер без обновления IE.Или так оно и есть?Благодаря Google, вы сможете использовать средство визуализации Chrome в IE.Таким образом, вы настроите браузеры с поддержкой HTML5 (Gecko, Webkit и Presto) на свои динамические графики и попросите пользователей IE установить дополнение Google, как только оно выйдет. canvas
работает в разных браузерах благодаря встроенной поддержке во всем, что не относится к IE, а также благодаря Исследуйте Холст плагин для IE. SVG
также доступна кроссбраузерная поддержка Спасибо Для некоторые плагины для IE.Обратите внимание, что если вам требуется средство визуализации Chrome для IE, вам больше ничего не нужно.
Вы могли бы либо использование canvas
или svg
для составления графиков, и для этого уже есть несколько библиотек.Обе технологии позволяет создавать динамические графики, но у них несколько разные подходы.
SVG холст ------------------------------------------------------------------------------- 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);
Холст
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();
}
У FlashAndMath есть несколько интересных библиотек для такого рода вещей:
Вы можете посмотреть, просто сделав это с тегом canvas, и для любого обновленного браузера, кроме IE, вы можете получить всплывающие подсказки, поскольку у него есть события, как и у любого другого HTML-тега.
Вы можете получить большую часть функциональности в IE, используя excanvas, мне просто не повезло, когда я рисовал текст.
Это не библиотека, но она предоставит вам возможность работать только в формате html с javascript.
3D-график рассеяния от canvasXpress предлагает альтернативу JavaScript и Canvas. http://canvasxpress.org/scatter3d.html