2009-12-01 12 views
7

Ich versuche, eine Rasterzeichnung Anwendung mit C# zu erstellen und bisher konnte ich keine vielseitigen leichten 2D-Grafikrahmen oder Führungen finden.Was ist ein gutes 2D-Grafikframework für eine Zeichenanwendung?

Ich habe gehofft, ein paar von euch wäre in der Lage mir einen guten Vorsprung zu geben, weil zur Zeit meine Entscheidungen GDI + oder WPF verwenden, und das ist es: (...

Im Grunde brauche ich etwas einfach, dass Ich werde mir die Fähigkeit zur Erstellung eines Canvas, Layers, Brushes und der Möglichkeit zum Import/Export all dieser Dinge aneignen.Ich habe mir verschiedene grafische Anwendungen angeschaut, um zu sehen, wie sie ihre Tools implementiert haben und online nach Büchern gesucht haben und herausgekommen sind ohne Kenntnis darüber, wo zu beginnen.

Danke, Andrew

+0

Ich sehe, Sie haben dies aktualisiert. Hast du die Chance bekommen, SDL.Net anzuschauen? Gibt es andere Funktionen, nach denen Sie suchen? Was die flackernden Bedenken betrifft, die Sie vorher erwähnt haben, habe ich eine Simulation mit maximaler Framerate-Simulation ohne Hacker gemacht, damit es funktioniert. –

Antwort

5

Sie erwähnen nicht, wenn Sie einen Vektoreditor oder einen Rastereditor erstellen möchten. Ich nehme Raster an.

Wenn Sie nicht viel Grafik-API-Erfahrung haben und nur etwas so schnell wie möglich arbeiten möchten, gehen Sie einfach mit GDI +. Es ist konzeptionell viel einfacher als WPF.

Sowohl GDI + als auch WPF können tun, was Sie wollen. Die Arbeit mit WPF wird wahrscheinlich eine bessere Leistung bringen, da Direct-X für die Beschleunigung verwendet wird. Es verwendet auch ein Stored-Scene-Paradigma, das viele Zeichenoperationen konzeptionell vereinfachen kann. Die Lernkurve ist jedoch viel höher als GDI +.

Sie könnten immer Open-GL, Direct-X oder unmanaged GDI verwenden. Sie alle haben eine gute 2D-Leistung. Aber Sie müssen unmanaged Code aufrufen.

+0

Danke, ich meinte Raster, habe meinen Beitrag entsprechend aktualisiert. Ich habe etwas Zeit in der Sache, ich forsche, bevor ich eintauche. Ich habe vorher GDI + benutzt und musste eine Menge davon hacken, um das Flackern und Ärger, das es aufwarf, loszuwerden, also habe ich Angst, einen zu machen Grafikanwendung darüber. – Andrew

+0

Nun, ich denke, WPF oder Unmanaged GDI sind meine einzigen zwei Möglichkeiten, danke :) – Andrew

3

Nun, zwei Dinge.

Man kann einen Blick auf Paint.Net werfen. Es ist ein kostenloses .Net-Programm für die Arbeit mit 2D-Grafiken. Mit Hilfe des Plugin-Modells können Sie das Problem, an dem Sie arbeiten, leichter lösen.

Zweitens ist eine gute 2D-Grafikbibliothek SDL.Net. Es ist eine Reihe von OO-Wrappern für die C SDL-Bibliothek und macht das Zeichnen von 2D-Bildern sehr einfach. Ich weiß nicht, ob es Unterstützung für all die "Manipulations" -Fragen bietet, die Sie haben.

2

Wenn Sie versuchen, 2D-Grafiken zu lernen, ist WinForms viel einfacher zu erlernen als WPF. WinForms unterstützt Pinsel, Canvases, mehrere Grafikformate, Dateiimport/-export und so weiter.

Die Code Project Website hat viele WinForms-Grafik-Tutorials, versuchen Sie starten.

+0

In den Jahren, seit diese Antwort veröffentlicht wurde, habe ich meine Meinung geändert und jetzt WPF empfehlen. WinForms ist eine Sackgasse. –

1

Das XNA-Framework ist einfach zu bedienen und funktioniert gut, da es eigentlich nur ein Wrapper für DirectX ist. Der große Vorteil ist, dass Sie Ihren gesamten Code in verwaltetes C# schreiben können. Sehen Sie sich this post im XNA-Forum an, um zu sehen, wie Sie die Anzeige für den Export auslesen können.

1

Es gibt auch das Tao-Framework, mit dem Sie entweder OpenGL oder SDL für Ihre Zeichnungsanforderungen verwenden können. Es ist auch eine Reihe von OO-Wrapper um jeden. Es gibt auch einige Tutorials auf Google, um mit dem Programm zu beginnen.

Tao Framework

1

Piccolo 2D ist ein 2D GFX-Framework für Java und C#. Kostenlos, Open-Source. Stellt ein Szenendiagramm usw. zur Verfügung. Zoombar.Sieht gut aus.

+0

Ich habe Piccolo in einem Java-Projekt erfolgreich eingesetzt. Die .NET-Version wurde seit 2005 nicht aktualisiert, daher suche ich nach etwas, das in einer WPF-Anwendung eingebettet ist. – Emile

Verwandte Themen