Scatter Plot 3D pour application Web

je suis à la recherche d'un composant Scatter Plot 3D pour une application Web. En ce moment j'utilise JMathPlot (dans un Applet Java) pour produire quelque chose comme ceci:

alt texte http://jmathtools.berlios.de/lib/exe/fetch.php?media=scatterplot3d.png

JMathPlot est très bien, mais il manque certaines fonctionnalités nécessaires (je suis particulièrement intéressé à avoir des infobulles pour les points de tracé).

y a-t-il des alternatives? Toute technologie Web interactive (javascript, Java applet, flash, silverlight) est très bien. L'utilisateur doit être capable de faire pivoter/zoomer la parcelle et voir les tooltips, lors de la rotation de la souris sur un point.

3
demandé sur kgiannakakis 2009-09-10 17:35:04

6 réponses

il existe plusieurs moteurs 3D simples pour les deux silverlight (par ex. http://www.markdawson.org/Kit3D/ ou http://www.codeplex.com/aXelerateSL3D ) et flash ( ici la liste de ), étant donné que vous connaissez ActionScript, VB.NET ou C#, il devrait être facile de créer un tel graphique vous-même.

Version 10 de flash a même un construit en simple "moteur 3d" :

Flash Player 10 permet la traduction xyz et la rotation xyz des surfaces 2D sur le x, y, et z axes. Flash Player 10 aussi affiche la perspective et l'appareil photo angles que vous réglez pour créer 3D-like effet.

c'est probablement tout ce dont vous avez besoin pour le Construire rapidement vous-même.

puisque JMathPlot est open source, l'adopter pour vos besoins pourrait être une autre option.

3
répondu bitbonk 2009-09-19 22:43:06

vous pourriez aussi vouloir regarder dans traitement . Ils n'ont peut-être pas de composants tout faits, mais il y a des milliers de bons exemples de code source sur le web.

2
répondu David Rutten 2009-09-19 23:09:14

James Black la suggestion de l'utilisation de la balise canvas, est un très bon produit, mais cela requiert un non IE jour du navigateur. Ou est-il? Grâce à google, , vous serez en mesure d'utiliser le moteur de rendu Chrome dans IE . De cette façon, vous ciblez les navigateurs HTML5 activés (Gecko, Webkit et Presto) avec vos graphiques dynamiques, et demandez aux utilisateurs D'IE d'installer le Add on de Google une fois qu'il sort. canvas fonctionne cross browser grâce au support natif dans tout non-IE, et à Google Explorer Canvas plugin pour IE. SVG le soutien est également disponible cross browser merci à certains plugins pour IE . Notez que si vous avez besoin du moteur de rendu Chrome pour IE, vous n'avez besoin de rien d'autre.

, Vous pouvez soit utiliser canvas ou svg pour faire les graphiques , et il existe déjà des bibliothèques pour le faire . Les deux technologies vous permettent de créer des graphiques dynamiques , mais ils ont des approches différentes.

SVG                                        canvas
-------------------------------------------------------------------------------
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

je pense que je dirais SVG pour faire ce que vous voulez, car il sera très simple d'y ajouter des étiquettes dynamiques, mais il sera difficile de créer une API vraiment flexible pour les diagrammes de dispersion pseudo 3D.

le problème avec svg est qu'en essayant de rendre un langage très souple, vous en avez un très complexe. Ici vous pouvez voir le code écrit dans les deux bibliothèques qui font la même chose.

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);

Toile

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();
}
1
répondu Esteban Küber 2017-05-23 12:09:05

Embedded flash object

FlashAndMath ont quelques bibliothèques intéressantes pour ce genre de chose:

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

1
répondu Neil McKeown 2017-02-08 14:23:15

vous pouvez regarder juste en faisant cela avec la balise canvas, et pour tout navigateur mis à jour, sauf IE, vous pouvez obtenir des infobulles, car il a des événements comme n'importe quelle autre balise html.

vous pouvez obtenir la plupart des fonctionnalités sur IE en utilisant excanvas, Je n'ai pas eu la chance de dessiner du texte.

ce n'est pas une bibliothèque, mais cela vous fournirait la capacité de travailler juste en html avec javascript.

0
répondu James Black 2009-09-23 04:34:11

le scatter plot 3d de canvasXpress offre une alternative JavaScript et Canvas. http://canvasxpress.org/scatter3d.html

0
répondu Daniel Ballinger 2012-08-11 06:50:14