Domanda

Sto cercando un componente Scatter Plot 3D per un'applicazione Web. In questo momento sto usando JMathPlot (all'interno di un'applet Java) per produrre qualcosa del genere:

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

JMathPlot va bene, ma manca alcune funzionalità richieste (sono particolarmente interessato ad avere suggerimenti per i punti della trama).

Ci sono alternative? Qualsiasi tecnologia web interattiva (javascript, applet java, flash, silverlight) va bene. L'utente dovrebbe essere in grado di ruotare / ingrandire la trama e vedere le descrizioni dei comandi, quando si passa il mouse sopra un punto.

È stato utile?

Soluzione

Esistono diversi semplici motori 3D per entrambi Silverlight (ad es. http://www.markdawson.org/ Kit3D / o http://www.codeplex.com/aXelerateSL3D ) e flash ( elenca qui ) dato che conosci ActionScript, VB.NET o C #, dovrebbe essere facile creare un grafico del genere da solo.

La versione 10 di flash ha anche un costruito in un semplice motore 3d " :

  

Flash Player 10 consente la traduzione di xyz   e rotazione xyz di superfici 2D sul   assi x, ye z. Anche Flash Player 10   visualizza la prospettiva e la fotocamera   angoli impostati per creare simil-3D   effetti.

Questo è probabilmente tutto ciò che serve per costruirlo rapidamente da soli.

Poiché JMathPlot è open source, adottarlo per le tue esigenze potrebbe essere un'altra opzione.

Altri suggerimenti

Potresti anche voler esaminare Elaborazione . Potrebbero non avere componenti già pronti, ma ci sono migliaia di buoni esempi di codice sorgente sul web.

Suggerimento di James Black per utilizzare il tag canvas, è molto buono, ma richiede un browser non aggiornato con IE. O lo fa? Grazie a google, potrai utilizzare Chrome Renderer in IE . In questo modo indirizzeresti i browser abilitati per HTML5 (Gecko, Webkit e Presto) con i tuoi grafici dinamici e chiederesti agli utenti di IE di installare il componente aggiuntivo di Google una volta uscito. canvas funziona su più browser grazie al supporto nativo in tutto ciò che non è IE e al Esplora Canvas plugin per IE. Il supporto SVG è disponibile anche tra browser grazie a alcuni plugin per IE . Nota che se hai bisogno di Chrome Renderer per IE, non hai bisogno di nient'altro.

Puoi usare canvas o svg per fare i grafici e ce ne sono già alcuni biblioteche per farlo . Entrambe le tecnologie ti consentono di creare grafici dinamici , ma hanno alcuni approcci diversi.

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

Penso che andrei con SVG per fare quello che vuoi, dato che sarà semplicissimo aggiungere etichette dinamiche ad esso, ma sarà difficile creare un sistema veramente flessibile API per grafici a dispersione 3D pseudo.

Il problema con svg è che tentando di creare un linguaggio molto flessibile, ne hai uno molto complesso. Qui puoi vedere il codice scritto in entrambe le librerie che fanno la stessa cosa.

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

Oggetto flash incorporato

FlashAndMath ha alcune librerie interessanti per questo genere di cose:

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

Potresti guardare semplicemente facendo questo con il tag canvas, e per qualsiasi browser aggiornato, ad eccezione di IE, potresti ottenere suggerimenti, poiché ha eventi proprio come qualsiasi altro tag html.

Puoi ottenere la maggior parte delle funzionalità su IE usando excanvas, non ho avuto fortuna nel disegnare del testo.

Non è una libreria, ma ti fornirebbe la possibilità di lavorare solo in html con javascript.

Il grafico a dispersione 3d di canvasXpress offre un'alternativa JavaScript e Canvas. http://canvasxpress.org/scatter3d.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top