2009-06-16 46 views
6

Estamos investigando bibliotecas de control alternativo para un nuevo proyecto en el que estamos trabajando. Uno de los requisitos es mostrar los datos en forma de un mapa de superficie, según el gráfico de ComponentOne a continuación.Alternativa a ComponentOne Gráfico de mapa de superficie 3D

alt text

Hemos utilizado el control C1 en el pasado, pero no son del todo contento con él - por lo que se preguntó si alguien puede recommoned algunas alternativas.

Al tener algunos problemas para encontrar cualquiera, por lo que toda la ayuda apreciada.

NB: Esta es una aplicación de .NET 3.5 Windows Forms

Respuesta

-2

He sido muy feliz con Dundas Chart en el pasado -usted podría ver si que se adapte a sus necesidades.

+0

Desafortunadamente no soy capaz de ver un gráfico de mapa de superficie como parte de la oferta que hay. – Martin

+0

Dundas chart ya no se vende. Nunca tuvo un gráfico de superficie tampoco. Lo mejor en gráficos de superficie es Nevron. –

5

Puede que no sea mi problema, ya que nunca he usado el framework C# /. NET/etc, pero parece un diagrama de malla de una matriz.

Nos presentaron a Octave en Uni y uno de los paquetes nos permitió matrices de trazado de malla. El paquete que Octave usa para trazar es GNUPlot. No sé si qué pasa si puede conectarlo a .NET 3.5 por lo que podría no ser de mucha ayuda, pero es el trabajo having a look.

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

4

Depende de cuánto desea gastar en ella, hay una gran cantidad de opciones, hacemos una variedad de trabajos en gráficos 3D y hemos explorado extensamente en el pasado continuación he proporcionado algunos enlaces para ayudarle a empezar

Hope esto es útil

7

Ya ha llegado a través de esto, pero pensé que señalaría el artículo de CodeProject Plot 3D surfaces. No estoy seguro de si el conjunto de características es suficiente para sus requisitos, pero vale la pena investigarlo si aún no lo ha hecho. La ventaja obvia es que es de código abierto y gratuito (para que pueda expandirlo para sus necesidades particulares).

Ejemplo de pantalla:

Otra posible alternativa que parece razonablemente completa es la biblioteca F# for Visualization. Esto es comercial, pero por el aspecto que haría más que lo que pueda necesitar. No deje que el hecho de que esté diseñado para F # lo desanime: , debe seguir usándolo directamente desde C# (o quizás con una cantidad menor de interoperabilidad para que las cosas estén más limpias). Ciertamente, el soporte de programación funcional ofrecido por C# debería hacer que el trabajo sea relativamente fácil.

Ejemplo de pantalla:

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

He sugerido la primera opción (CodeProject) sólo en caso de que le sucede a sus necesidades, aunque también puede que no. El F # casi seguramente sería lo suficientemente bueno. Tenga en cuenta que F # es un lenguaje funcional (y por lo tanto, se usa generalmente para aplicaciones matemáticas y científicas), es probable que sea una excelente opción para cualquier funcionalidad relacionada con el trazado de gráficas: incluso puede considerar escribir la parte del programa que grafica en el lenguaje, especialmente si se vuelve relativamente complejo.

Espero que ayude.

-2

También puede ser que desee probar:

+0

¿No leyó la pregunta? - En la necesidad de un gráfico de superficie. Ninguno de estos tiene un gráfico de superficie. –

2

Hemos utilizado anteriormente para otros Nevron WinForms gráficos y fueron geniales - th El producto funcionó y el soporte técnico fue realmente útil.

Parece que hacer gráficos de superficie (al menos como yo los entiendo): 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

(I trató de hacer que los enlaces adecuados sino porque soy nuevo no se le permitió poner más de uno)

2

Recomendaría utilizar Scinet Chart desde http://www.obacs.com. Tiene muchas opciones de gráficos y mucho más barato en comparación con las alternativas.

2

Te aconsejo precaución con Nevron. Tengo una amplia experiencia ya que los he usado para todos mis gráficos en una aplicación Enterprise BI durante los últimos 5 años.

Hay mucho que gusta de Nevron:

  • los gráficos se ven muy bien
  • la API es bastante bueno
  • hay un montón de tipos de gráficos
  • el precio es correcto (que son más baratos que muchos de sus competidores como Dundas)
  • el soporte técnico es bastante bueno, generalmente puede enviar correos electrónicos directamente a los desarrolladores y obtener una buena respuesta de ellos. Están más que felices de agregar nuevos tipos de gráficos para usted, si está preparado, brinde alguna información sobre los requisitos. Construyeron un gran componente de Venn Diagram para mí :)

Todo bien hasta ahora? El asesino para mí tiene que ser doloroso cuando se lanzan nuevas versiones de la suite. Usamos Nevron para nuestros gráficos e Infragistics para nuestros componentes de UI. En general, puedo actualizar nuestra aplicación a una nueva versión de Infragistics en medio día. Una nueva actualización de Nevron puede demorar hasta 4 semanas.

Han cambiado su modelo de objeto muchas veces y tienen un historial de romper la compatibilidad de la interfaz y cambiar la forma en que usted hace las cosas. Tengo una sensación de temor cada vez que tengo que preformar una actualización de Nevron ...

Otra palabra de advertencia, su manejo del etiquetado de ejes deja mucho que desear. He pasado mucho tiempo intentando que las etiquetas de los ejes se vean bien. El soporte para esto ha mejorado en los últimos lanzamientos, pero todavía no está allí.

+0

Gracias Steve - Estaba viendo su oferta seriamente y ha agregado una gran contribución. – Martin

+0

Además, tenga en cuenta que necesitará obtener una licencia por cada servidor web que ejecute Nevron si utiliza ASP.Net. No existe un precio para dicha licencia en su sitio web, pero varios revendedores en línea cotizan alrededor de $ 200 por uno. Esto es lo que dice el acuerdo de licencia de Nevron: "La licencia de desarrollador estándar 1 también incluye 1 licencia de servidor web. Se deben obtener licencias adicionales de servidor web si su (s) aplicación (s) se implementarán en más de un servidor web comercial". – demp

+0

Nevron Charts tuvo muchas reescrituras porque Nevron quería incorporar funciones nuevas y distintas gradualmente en el tiempo. Esto nunca puede sucederle a un componente de Infragistics, simplemente porque nunca se reescribirá para admitir todas las funciones que tiene Nevron. –

2

Es posible que desee considerar Super 2d/3d Graph Library de Software Siglo XXI (es libre de derechos y es muy barato).

Código de ejemplo:

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 

Aquí está el enlace: Super 2d/3d Graph Library product page

1

¿Cómo puede esta lista completa sin al menos mencionar ILNumerics?

Descargo de responsabilidad: Estoy predispuesto a trabajar en el equipo de ILNumerics. Pero nuestro Visualization Engine trae las parcelas de superficie más flexibles y más rápidas disponibles en la actualidad. Esto es lo que dicen nuestros clientes. Puede probarse gratis, incluso directamente en nuestro sitio web.

Editar: una manera muy sencilla configuración de una parcela de superficie en ILNumerics se consigue del siguiente modo:

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

Todas las escenas se componen de objetos simples en un escenario gráfico. Puedes modificar y controlar todo. Esto está especializado para datos científicos. Tratar de modificar este ejemplo en línea:

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

+0

Proporcionar su afiliación con el producto sugerido es un buen comienzo. Sin embargo, para que esta sea una buena respuesta, debe ser más que una recomendación. Una buena respuesta que involucra un recurso externo incluye las partes esenciales de la respuesta aquí para futuros usuarios, particularmente "¿Cómo uso esto para resolver el ** problema exacto ** que tengo en mi pregunta?" Ver: [¿Cómo puedo enlazar a un recurso externo de una manera amigable con la comunidad?] (// meta.stackexchange.com/questions/94022) – Mogsdad

+0

¡Esto parece interesante y probablemente la solución más cercana a lo que estaba buscando! Muchas gracias, lo intentaré. – Martin

Cuestiones relacionadas