Pergunta

Estou à procura de um componente 3D Scatter Plot para uma aplicação Web. Agora eu estou usando JMathPlot (dentro de um Applet Java) para produzir algo como isto:

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

JMathPlot é bom, mas está faltando alguma funcionalidade necessária (estou especialmente interessado em ter as dicas para os pontos da trama).

Existem alternativas? Qualquer tecnologia web interactivo (javascript, applet Java, Flash, Silverlight) é bom. O usuário deve ser capaz de girar / zoom o enredo e veja as dicas de ferramentas, quando passar o mouse sobre um ponto.

Foi útil?

Solução

Existem várias simples motores 3D, tanto para Silverlight (eg. http://www.markdawson.org/ Kit3D / ou http://www.codeplex.com/aXelerateSL3D ) e flash ( lista aqui ), dado que você sabe tanto ActionScript, VB.NET ou C # deve ser fácil criar tal gráfico si mesmo.

A versão 10 do Flash ainda tem um construída em simples "motor 3d" :

Flash Player 10 permite a tradução xyz e xyz rotação de 2D superfícies no x, y, e z eixos. Flash Player 10 também exibe a perspectiva e câmera ângulos você definir para criar 3D-like efeitos.

Isso é provavelmente tudo que você precisa rapidamente construiu-lo sozinho.

Desde JMathPlot é open source, adotá-lo para as suas necessidades poderia ser outra opção.

Outras dicas

Você também pode querer olhar para Processamento . Eles podem não ter componentes prontos, mas existem milhares de bons exemplos de código-fonte na web.

O James Black sugestão usar a tag canvas, é muito bom, mas requer um navegador atualizados não IE. Ou não? Graças ao Google, você será capaz de usar o renderizador Chrome dentro do IE . Desta forma, você tinha como alvo HTML5 habilitado navegadores (Gecko, WebKit e Presto) com seus gráficos dinâmicos, e pedir usuários do IE para instalar Add do Google sobre uma vez que ele sai. canvas funciona cruzadas graças navegador para suporte nativo em tudo o não-IE, e do Google Explorar Canvas plugin para o IE. apoio SVG também é cross browser disponível graças para alguns plugins para o IE . Note que se você precisar a Renderer Chrome para o IE, você não precisa de mais nada.

Você poderia uso canvas ou svg para fazer os gráficos e já existem algumas bibliotecas para fazê-lo . Ambas as tecnologias permitem que você crie gráficos dinâmicos , mas eles têm algumas abordagens diferentes.

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

Eu acho que eu iria com SVG para fazer o que quiser, como ele vai ser simples morto para adicionar rótulos dinâmicos a ele, mas será difícil criar uma API verdadeiramente flexível para gráficos de dispersão pseudo 3D.

O problema com svg é que, ao tentar fazer uma linguagem muito flexível, você tem muito complexa. Aqui você pode ver o código escrito em ambas as bibliotecas que fazem a mesma coisa.

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

incorporado objeto flash

FlashAndMath tem algumas bibliotecas interessantes para esse tipo de coisa:

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

Você pode olhar apenas fazendo isso com a tag canvas, e para qualquer navegador atualizado, exceto IE, você pode obter dicas de ferramentas, já que tem eventos como qualquer outra tag HTML.

Você pode obter a maioria das funcionalidades no IE usando excanvas, eu só não tive sorte texto desenho.

Não é uma biblioteca, mas iria fornecer-lhe a capacidade de trabalho apenas em html com javascript.

O gráfico de dispersão 3D a partir de canvasXpress oferece uma alternativa JavaScript e Canvas. http://canvasxpress.org/scatter3d.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top