2009-12-01 2 views
7

J'essaie de créer une application de dessin matriciel en utilisant C# et jusqu'à présent, je n'ai pas été en mesure de localiser des cadres graphiques 2D, ou des guides.Qu'est-ce qu'un bon framework graphique 2D, pour une application de dessin?

J'espérais que quelques-uns d'entre vous serait en mesure de me donner un bon départ car actuellement mes choix utilisent GDI + ou WPF et qui est à ce sujet: (...

Fondamentalement, je besoin de quelque chose simple me permettra de créer un canevas, des calques, des pinceaux, et d'importer/exporter toutes ces choses.J'ai regardé à travers plusieurs applications graphiques pour voir comment ils ont implémenté leurs outils et regardé en ligne pour trouver des livres. sans savoir où commencer.

Merci, Andrew

+0

Je vois que vous avez mis à jour ce. Avez-vous eu l'occasion de regarder SDL.Net? Y a-t-il d'autres fonctionnalités que vous recherchez? En ce qui concerne les problèmes de scintillement que vous avez mentionnés auparavant, j'ai eu des visualisations de simulation de framerate maximum sans le piratage pour le faire fonctionner. –

Répondre

5

Vous ne mentionnez pas si vous voulez créer un éditeur de vecteur ou un éditeur de raster. Je suppose que raster.

Si vous n'avez pas beaucoup d'expérience en matière d'API graphique, et que vous voulez simplement que quelque chose fonctionne le plus rapidement possible, utilisez GDI +. C'est beaucoup plus simple que WPF sur le plan conceptuel.

GDI + et WPF peuvent faire ce que vous voulez. Travailler avec WPF donnera probablement de meilleures performances car il utilise Direct-X pour l'accélération. Il utilise également un paradigme de scène stockée, ce qui peut rendre beaucoup d'opérations de dessin conceptuellement plus simples. La courbe d'apprentissage est beaucoup plus élevée que GDI +, cependant.

Vous pouvez toujours utiliser Open-GL, Direct-X ou GDI non géré. Ils ont tous une bonne performance 2D. Mais vous devrez faire des appels au code non managé.

+0

Merci, je voulais dire raster, mis à jour mon poste en conséquence. J'ai un peu de temps sur la question, je suis en train de faire de la recherche avant de plonger. J'ai déjà utilisé GDI +, et j'ai dû en pirater beaucoup pour me débarrasser des scintillements et des ennuis qu'il posait, donc j'ai peur de faire un application graphique au-dessus de celui-ci. – Andrew

+0

Eh bien je suppose, WPF ou Unmanaged GDI sont mes deux seuls choix merci :) – Andrew

3

Eh bien, deux choses. Un, vous pouvez regarder Paint.Net. C'est un programme .Net gratuit pour travailler avec des graphiques 2D. En utilisant le modèle de plugin, vous pourrez peut-être résoudre plus facilement tout problème sur lequel vous travaillez.

Deuxièmement, une bonne bibliothèque graphique 2D est SDL.Net. Il s'agit d'un ensemble de wrappers OO pour la bibliothèque C SDL, et facilite le dessin d'images 2D. Je ne sais pas si cela offrira un soutien pour toutes les questions plus "manipulation" que vous avez, cependant.

2

Si vous essayez d'apprendre des graphiques 2D, WinForms est beaucoup plus facile à apprendre que WPF. WinForms prend en charge les pinceaux, les canevas, les formats graphiques multiples, l'importation/exportation de fichiers, etc.

Le site Code Project a beaucoup de didacticiels graphiques WinForms, essayez de démarrer here.

+0

Dans les années depuis que cette réponse a été posté, j'ai changé d'avis et maintenant recommander WPF. WinForms est une impasse. –

1

Le framework XNA est facile à utiliser et fonctionne bien car il ne s'agit en fait que d'un wrapper pour DirectX. Le gros avantage est que vous pouvez écrire tout votre code en C# géré. Jetez un oeil à this post sur le forum xna pour voir comment vous pouvez lire l'affichage pour l'exportation.

1

Il existe également le framework Tao, qui vous permet d'utiliser OpenGL ou SDL pour vos besoins de dessin. C'est aussi un ensemble de wrappers OO autour de chacun. Il existe de nombreux tutoriels sur Google pour commencer aussi bien.

Tao Framework

1

Piccolo 2D est un cadre 2d GFX pour Java et C#. Gratuit, open-source. Fournit un graphique de scène, etc. Zoomable.Cela semble bon.

+0

J'ai utilisé Piccolo dans un projet Java avec succès. La version .NET n'a pas été mise à jour depuis 2005 donc je cherche quelque chose de similaire à l'intégration dans une application WPF. – Emile