2009-06-16 4 views
6

Stiamo studiando librerie di controllo alternativo per un nuovo progetto su cui stiamo lavorando. Uno dei requisiti è quello di visualizzare i dati sotto forma di una mappa di superficie, in base al grafico di ComponentOne di seguito.Alternativa al grafico della superficie di una superficie ComponentOne 3D

alt text

Abbiamo utilizzato il controllo C1 in passato, ma non sono del tutto soddisfatto - quindi chiesti se qualcuno può recommoned alcune alternative.

Avendo qualche problema a trovarne uno, quindi tutto l'aiuto è stato apprezzato.

NB: Questo è un NET 3.5 WinForms applicazione

risposta

-2

Sono stato molto felice con Dundas Chart in passato -si poteva vedere se che si adatta alle tue esigenze.

+0

Purtroppo non sono in grado di vedere un grafico mappa superficie come parte della loro offerta. – Martin

+0

Il grafico di Dundas non è più in vendita. Non ha mai avuto nemmeno un grafico di superficie. Il migliore nel diagramma di superficie è Nevron. –

5

Potrebbe non essere affar mio, dal momento che non ho mai usato C# /. NET framework/etc, ma sembra un grafico a trama di una matrice.

Siamo stati introdotti a Octave in Uni e uno dei pacchetti ci ha permesso di matrici di trama mesh. Il pacchetto utilizzato da Octave per il plotting è GNUPlot. Non so se si può collegarlo a .NET 3.5, quindi potrebbe non essere di grande aiuto, ma è il lavoro having a look.

octave mesh plot http://www.network-theory.co.uk/docs/octave3/mesh.png

4

Dipende da quanto si vuole spendere per esso, ci sono un sacco di opzioni, facciamo una serie di lavori in grafica 3D ed esplorato ampiamente in passato Sotto ho fornito alcuni link per aiutarti a iniziare

Spero che questo è utile

7

Forse avete già incontrato questo, ma io ho pensato di far notare l'articolo CodeProject Plot 3D surfaces. Non sono sicuro che il set di funzionalità sia sufficiente per le tue esigenze, ma vale la pena di indagare se non lo hai già fatto. L'ovvio vantaggio è che è gratuito e open source (in modo che tu possa espanderlo per le tue esigenze particolari).

Esempio screenshot:

Un'altra possibile alternativa che sembra ragionevolmente completo è la biblioteca F# for Visualization. Questo è commerciale, ma dall'aspetto sarebbe più quello che potrebbe essere necessario. Non lasciate che il fatto che sia stato progettato per F # vi metterà in pausa - dovreste comunque usarlo direttamente da C# (o forse con una piccola quantità di interop per rendere le cose più pulite). Certamente, il supporto alla programmazione funzionale offerto da C# dovrebbe rendere il lavoro relativamente facile.

Esempio screenshot:

http://www.ffconsultancy.com/products/fsharp_for_visualization/images/surface_big.jpg

ho suggerito la prima opzione (CodeProject) solo nel caso che si verifica per soddisfare le vostre esigenze, anche se non può bene. L'F # uno sarebbe quasi sicuramente abbastanza buono. Nota che F # è un linguaggio funzionale (e quindi tipicamente usato per applicazioni matematiche e scientifiche), è probabile che sia un'ottima opzione per qualsiasi funzionalità correlata al tracciamento del grafico - potresti anche voler considerare di scrivere la porzione di programma che traccia in la lingua, soprattutto se diventa relativamente complessa.

Spero che questo aiuti.

-2

Si potrebbe anche voler provare:

+0

Non hai letto la domanda? - Ha bisogno di un grafico di superficie. Nessuno di questi ha un grafico di superficie. –

2

Abbiamo utilizzato Nevron prima per altri WinForms grafici ed erano fantastici - th Il prodotto ha funzionato e il supporto tecnico è stato davvero utile.

sembrano fare classifiche di superficie (almeno per quanto li capisco): www.nevron.com/Gallery.ChartFor.NET.ChartTypes.GridSurfaceChartGallery.aspx www.nevron.com/Gallery.ChartFor.NET. ChartTypes.MeshSurfaceChartGallery.aspx www.nevron.com/Gallery.ChartFor.NET.ChartTypes.TriangulatedSurface.aspx

(ho provato a farli collegamenti adeguati, ma perché io sono nuovo non è stato permesso di mettere in più di uno)

2

Si consiglia di utilizzare la tabella di Scinet da http://www.obacs.com. Ha molte opzioni di grafici e molto più economico rispetto alle alternative.

2

Consiglierei un po 'di cautela con Nevron. Ho una vasta esperienza in quanto li ho utilizzati per tutti i miei grafici in un'applicazione di BI aziendale negli ultimi 5 anni.

C'è molto da come su Nevron:

  • le classifiche sembrano grandi
  • l'API è piuttosto buona
  • ci sono un sacco di tipi di grafici
  • il prezzo è giusto (sono meno costosi rispetto a molti dei loro concorrenti come Dundas)
  • il supporto tecnico è piuttosto buono, in genere è possibile inviare direttamente gli sviluppatori e ottenere una buona risposta da loro. Sono più che felici di aggiungere nuovi tipi di grafici per te se sei pronto a dare qualche input ai requisiti. Hanno costruito per me un ottimo componente di Venn Diagram :)

Tutto bene finora? Il killer per me deve essere il dolore che è coinvolto quando vengono rilasciate nuove versioni della suite. Usiamo Nevron per i nostri grafici e infragistici per i nostri componenti UI. In genere posso aggiornare la nostra applicazione a una nuova versione di Infragistics in mezza giornata. Un nuovo aggiornamento di Nevron può richiedere fino a 4 settimane.

Hanno cambiato il loro modello di oggetti molte volte e hanno un track record di rottura sia della compatibilità dell'interfaccia che del modo in cui si fanno le cose. Ho la sensazione di paura ogni volta che devo preformare un aggiornamento Nevron ...

Un'altra parola di avvertimento, la loro gestione dell'etichettatura degli assi lascia molto a desiderare. Ho passato molto tempo a cercare di far apparire le etichette degli assi belli. Il supporto per questo è migliorato rispetto alle ultime versioni ma non è ancora disponibile.

+0

Grazie Steve: stavo guardando seriamente la loro offerta e hai aggiunto un grande contributo. – Martin

+0

Inoltre, è necessario ottenere una licenza separata per ogni server Web che esegue Nevron se si utilizza ASP.Net. Non esiste un prezzo per tale licenza sul loro sito web, ma vari rivenditori online citano circa $ 200 per uno. Questo è quanto afferma il contratto di licenza di Nevron: "La licenza per sviluppatore standard 1 include anche una licenza per server Web. È necessario ottenere licenze server Web aggiuntive se le applicazioni verranno distribuite su più di un server Web commerciale." – demp

+0

Nevron Charts ha avuto molte riscritture perché Nevron voleva incorporare funzionalità nuove e distinte gradualmente nel tempo. Questo non può mai accadere a un componente Infragistics, semplicemente perché non verrà mai riscritto per supportare tutte le funzionalità di Nevron. –

2

Si consiglia di considerare Super 2d/3d Graph Library da Software Siglo XXI (è royalty-free ed è molto economico).

codice di esempio:

Imports Super2d3dGraphLibrary 
Public Class Form1 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim sf As New SeriesFactory 
    Dim x, y, z As Integer 
    For x = 0 To 100 Step 5 
    For z = 0 To 100 Step 5 
     y = 30 - Math.Sqrt((x - 50) * (x - 50) + (z - 50) * (z - 50)) + Rnd() * 5 
     If y < 0 Then 
     y = 0 
     End If 
     sf.AddPoint(x, y, z) 
    Next 
    Next 
    sf.GenerateMesh() 
    With Super2d3dGraph1 
    .LicenseeIdentifier = "PROF" 
    .Title = "Surface chart from random X/Y/Z points" 
    .Style = Super2d3dGraphLibrary.STYLE2D3D.STYLE3D_XYZ_SURFACE_TRIANGLE 
    .BackStyle = STYLEBACKGROUND.STYLEBACKGROUND_GRADIENT 
    .ShowXAxis = True 
    .XAxisTitle = "X-Axis" 
    .XAxisScaleMaximum = 100 
    .XAxisScaleMinimum = 0 
    .XAxisScaleMode = SCALEMODE.SCALEMODE_FIXED 
    .XAxisNumericFormat = "0" 
    .ShowDividersX = True 
    .ShowYAxis = True 
    .YAxisTitle = "Y-Axis" 
    .YAxisNumericFormat = "0" 
    .ShowZAxis = True 
    .ZAxisTitle = "Z-Axis" 
    .ZAxisScaleMaximum = 100 
    .ZAxisScaleMinimum = 0 
    .ZAxisScaleMode = SCALEMODE.SCALEMODE_FIXED 
    .ZAxisNumericFormat = "0" 
    .ShowDividersZ = True 
    .ShowLegend = False 
    .ShowValues = False 
    .ShowDataTable = False 
    .SurfaceBrushStyle = New SolidBrush(Color.LightGreen) 
    .SurfaceBrushMinBrightness = 30 
    .SeriesLineStyle = New Pen() {New Pen(Color.Black)} 
    sf.ApplyTo(Super2d3dGraph1) 
    End With 
End Sub 
End Class 

Ecco il link: Super 2d/3d Graph Library product page

1

Come può questa lista completa senza almeno menzionare ILNumerics?

Disclaimer: Sono prevenuto lavorando nel team di ILNumerics. Ma il nostro Visualization Engine porta i grafici di superficie più flessibili e veloci disponibili oggi. Questo è ciò che dicono i nostri clienti. Puoi provare gratuitamente - anche direttamente sul nostro sito web.

Edit: una semplice messa a punto di una trama superficiale ILNumerics sarebbe raggiunto nel modo seguente:

enter image description here

var scene = new ILScene() { 
    new ILPlotCube(twoDMode: false) { 
    // we could define concrete data as matrix here. But for now 
    // we go with an analytic expression instead: 
    new ILSurface(
     (x, y) => (float)(Math.Sin(x) * Math.Cos(y) 
       * Math.Exp(-(x * x + y * y)/46)), 
     colormap: Colormaps.Flag) // { new ILColorbar() } 
    } 
}; 

Tutte le scene sono composte da oggetti semplici in un grafo della scena. È possibile modificare e controllare tutto. Questo è specializzato per i dati scientifici. Prova e modificare questo esempio on-line:

http://ilnumerics.net/ilcc.php?ilc=ia13490

+0

Fornire la propria affiliazione con il prodotto suggerito è un buon inizio. Tuttavia, affinché questa sia una buona risposta, deve essere più di una raccomandazione. Una buona risposta che coinvolge una risorsa esterna al sito include le parti essenziali della risposta qui per gli utenti futuri, in particolare "Come faccio a usare questa cosa per risolvere il ** problema esatto ** che ho nella mia domanda?" Vedi: [Come posso creare un link a una risorsa esterna in un modo che rispetti la community?] (// meta.stackexchange.com/questions/94022) – Mogsdad

+0

Questo sembra interessante e probabilmente la soluzione più vicina a quello che stavo cercando! Molte grazie - ci proveremo. – Martin