2009-12-01 14 views
7

Estoy tratando de construir una aplicación de dibujo de trama utilizando C# y hasta ahora no he podido encontrar ningún marco de gráficos versátiles 2D, o guías.¿Qué es un buen marco de gráficos 2D para una aplicación de dibujo?

Tenía la esperanza de que algunos de ustedes sería capaz de darme una buena ventaja ya que de momento mis opciones están utilizando GDI + o WPF y que se trata de IT: (...

Básicamente necesito algo simple que me proporcionará la capacidad de crear un lienzo, capas, pinceles y la capacidad de importar/exportar todas estas cosas. He examinado varias aplicaciones gráficas para ver cómo implementaron sus herramientas y busqué libros en línea y han salido sin conocimiento sobre dónde empezar.

gracias, Andrew

+0

Veo que has actualizado esto. ¿Tuviste la oportunidad de mirar SDL.Net? ¿Hay otras características que estás buscando? En cuanto a las inquietudes parpadeantes que menciona antes, he tenido visualizaciones de simulación de framerate máximas sin hacking para que funcionen. –

Respuesta

5

No menciona si desea crear un editor de vectores o un editor de ráster. Estoy asumiendo raster.

Si no tiene mucha experiencia en API de gráficos, y solo quiere hacer que algo funcione lo antes posible, simplemente vaya con GDI +. Es mucho más simple que WPF conceptualmente.

Tanto GDI + como WPF pueden hacer lo que usted desee. Trabajar con WPF probablemente dará un mejor rendimiento porque usa Direct-X para la aceleración. También utiliza un paradigma de escena almacenada, que puede hacer que muchas operaciones de dibujo sean conceptualmente más simples. La curva de aprendizaje es mucho más alta que GDI +, sin embargo.

Siempre puede usar Open-GL, Direct-X o GDI no administrado. Todos ellos tienen un buen rendimiento en 2D. Pero deberá realizar llamadas al código no administrado.

+0

Gracias, me refiero a la trama, actualicé mi publicación en consecuencia. Tengo algo de tiempo en el asunto, estoy investigando antes de bucear. He usado GDI + anteriormente, y tuve que hackear mucho para eliminar el parpadeo y las molestias que planteaba, así que tengo miedo de hacer una aplicación de gráficos en la parte superior. – Andrew

+0

Bueno, supongo que WPF o GDI no administrado son mis dos únicas opciones, gracias :) – Andrew

3

Bueno, dos cosas.

Uno, puedes echar un vistazo a Paint.Net. Es un programa .Net gratuito para trabajar con gráficos 2D. Usando el modelo de complemento, es posible que pueda resolver cualquier problema en el que esté trabajando más fácilmente.

En segundo lugar, una buena biblioteca de gráficos 2D es SDL.Net. Es un conjunto de envoltorios OO para la biblioteca C SDL, y hace que dibujar imágenes 2D sea bastante fácil. No obstante, no sé si ofrecerá soporte para todas las preguntas de "manipulación" que tenga.

2

Si está tratando de aprender gráficos 2D, WinForms es mucho más fácil de aprender que WPF. WinForms admite pinceles, lienzos, múltiples formatos de gráficos, importación/exportación de archivos, etc.

El sitio Code Project tiene muchos tutoriales gráficos de WinForms, intente iniciar here.

+0

En los años transcurridos desde que se publicó esta respuesta, he cambiado mi opinión y ahora recomiendo WPF. WinForms es un callejón sin salida. –

1

El framework XNA es de fácil uso y funciona bien, ya que en realidad es solo un contenedor para DirectX. La gran ventaja es que puedes escribir todo tu código en C# administrado. Eche un vistazo al this post en el foro xna para ver cómo puede leer la pantalla para exportar.

1

También existe el marco Tao, que le permite usar OpenGL o SDL para sus necesidades de dibujo. También es un conjunto de envoltorios OO alrededor de cada uno. Hay algunos tutoriales en Google para comenzar también.

Tao Framework

1

Piccolo 2D es un marco GFX 2D para Java y C#. Gratis, de código abierto. Proporciona un gráfico de escena, etc. Zoomable.Se ve bien.

+0

Utilicé Piccolo en un proyecto de Java con éxito. La versión de .NET no se ha actualizado desde 2005, así que estoy buscando algo similar para incrustar en una aplicación WPF. – Emile

Cuestiones relacionadas