2009-11-30 50 views
6

Soy una persona visual, si puedo visualizar algo, a menudo tiene más sentido para mí.Representación 3D SIMPLE en C#

¿Hay una manera simple de representar datos en 3D para utilizarlos en visualizaciones simples? Lo que efectivamente me gustaría hacer es la siguiente:

Tengo una matriz de 3 dimensiones de Int32 de:

Int32[,,] data = new Int32[256,256,256]; 

lleno yo, esta matriz con los datos, y que básicamente quiere ahora para hacer esto en un espacio 3D . X, Y y Z y colocar un punto donde los datos son mayores que 0. Básico

Ser capaz de cambiar el ángulo de visión sería una ventaja, pero no esencial.

No he estudiado el renderizado 3D lo suficiente como para hacer uso de cualquiera de los motores 3D reales que hay, así que cuanto más simple, mejor.

Cualquier ayuda, los indicadores serían agradables.

Gracias

Respuesta

5

WPF (Windows Presentation Foundation, incluido en .net 3.5) hace que la renderización 3D sea bastante fácil (o al menos más fácil de lo que era antes). Echar un vistazo a la siguiente tutorial:

http://www.kindohm.com/technical/WPF3DTutorial.htm - la fuente original está muerto, pero el artículo todavía se pueden encontrar en archive.org, http://web.archive.org/web/20131122141342/http://kindohm.com/technical/WPF3DTutorial.htm

Se muestra cómo crear una pequeña ventana gráfica 3D y la posición elementos simples dentro.

+1

No recomendaría WPF/WPF3D simplemente para comenzar a graficar datos 3D. Configurar una escena en 3D no es fácil: tendrás que crear una malla triangular a partir de los datos, iluminar la escena correctamente y colocar la cámara en el lugar correcto en el ángulo correcto. Y luego debes aprender WPF. Eso es solo para comenzar. Entonces es probable que desee colorear la malla para varios valores Z, y probablemente ponga ejes xyz en el gráfico. Me quedaría con un control de gráfico, ya sea de Microsoft o DundasChart. –

+0

A partir de un escaneo rápido del artículo, no parece simple, pero al menos más simple que implementar un motor 3D. Informaré después de leer e intentar los ejemplos en el artículo. – Gineer

+2

Ahora me he deshecho de este artículo y pude hacer exactamente lo que me puse a hacer. Puedo producir una visualización de datos bastante complejos y hacer zoom e inclinar el gráfico en cualquier dirección durante el tiempo de ejecución. Este es de lejos el ejemplo para trabajar si le gustaría entrar en este tipo de cosas desde un punto de vista .Net. – Gineer

1

Microsoft .Net Chart Control - descarga here. Es como usar la creación de gráficos 3D en Excel.

+0

Gracias por esto. Mantenerlo simple siempre es clave, pero en este caso necesito algo más que solo gráficos de tipo sobresaliente; de ​​lo contrario, los gráficos superficiales de superficies 3D habrían logrado el objetivo. Los datos que tengo son bastante complejos y necesitarían que coloque puntos 3D dentro de un cubo virtual donde haya datos. La cuestión es que necesitaría ver el interior del cubo, no solo la superficie exterior de los datos. – Gineer

Cuestiones relacionadas