Точечная диаграмма 3D для веб-приложения

StackOverflow https://stackoverflow.com/questions/1405352

  •  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 есть несколько интересных библиотек для такого рода вещей:

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

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

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

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

3D-график рассеяния от canvasXpress предлагает альтернативу JavaScript и Canvas. http://canvasxpress.org/scatter3d.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top