Einzelnen Beitrag anzeigen

qduda

Registriert seit: 15. Aug 2011
1 Beiträge
 
#1

Rotation von Grafiken, Transparenz, Radar

  Alt 21. Aug 2011, 18:02
Hallo Community,

kurz zu mir. Ich habe vor einigen Jahren mit Delphi gearbeitet, bin dann aber quasi komplett auf C++ .net bzw c# .net umgestiegen. Es war erstmal interssant zu sehen, dass Delphi jetzt nicht mehr zu Borland gehört...

Wie dem auch sei, ich habe folgendes Problem. Ich möchte auf einem VCL Formular eine Art "Radar" zeichnen. So etwas wie in diversen Filmen, ein Kreis in dem quasi eine Linie (radius) rotiert und dann so Punkte bei Ortung aufpoppen. Hintergrund ist eine kleine Idee von mir und ein Minispiel.
Ich hoffe ihr könnt euch vorstellen was ich meine und will.

So also jetzt habe ich zunächst mit den Standard Delphi Komponenten expiermentiert und musste feststellen, dass z.B. ein TImage nicht mal methoden zur Rotation vorgesehen hat. Hier auf dem Forum bin ich schnell fündig geworden --> Graphics32 (eine open source library) bietet erweitere "Grafikkomponenten", so enthält z.B. die Klasse TImage32 (aus der Graphics32 lib) Methoden zur Rotation und zur Transparenz. Nach etwas gefriemel und dem einen oder anderen Work-arround (Das mit den Transparenzen funktioniert nur halb-gar) musste ich dann feststellen, dass die Visualisierung zwar mit dieser Lib möglich ist, aber das ganze dann leider nicht performant genug ist. Es werden mehrere Grafiken übereinander gelegt, rotiert und Linien und Punkte eingemalt. Die Bitmaps werden quasi vor dem Neuzeichnen ge-cleared. Das sorgt dafür, dass es zu unerwünschtem "Blicken" der Zeichenfläche kommt, die Animation wirkt also alles andere als Homogen...

Einige Stunden später habe ich dann Kapituliert und musste einsehen, dass diese Library für meine Zwecke wohl nicht geignet ist. Einige Google Anfragen und durchgelesene Threads später schien mir DirectX bzw Direct2D die Lösung zu sein. Damit habe ich auch schon mit C++ gearbeitet. Jetzt musste ich feststellen dass es diverse Projekte (z.B. Project Jedi) gab die sich mit der Portierung der API Header auf Delphi beschäftigt hatten. Viele der Projecte gibt es nicht mehr. Somit gibt es auch keine aktuellen Header für z.B. DirectX10 oder 11 für Delphi. Auch habe ich Foren/Communitys gefunden, die sich quasi genau mit der Thematik DirectX für Delphi beschäftigten, diese sind aber irgendwie tot.
Folglich scheint mir DirectX auch nicht die Lösung zu sein die ich suche.

Was aber nun tun? Das Projekt verwerfen? Auf C++ ausweichen? Das würde ich ungern, denn meine Idee war ein altes Delphi Projekt von mir zu erweitern und dieses "Radar" einzubauen...

Stoße ich hier gerade an die Grenzen von Delphi? (Klar mit entsprechendem Aufwand kann ich mir die API Header auch selber portieren usw... Aber da ich die Sache hier in meiner Frezeit mache, und die iser leider begrenzt ).

Vielleicht übersehe ich etwas, und hier hat jemand einen guten Tipp für mich wie ich vorgehen kann. Gibt es evtl. Libs die für mich geeignet sind? Oder irgendwelche alternativen Technologien?

Danke euch für die Tipps im Vorraus!

Cheers,

Q
  Mit Zitat antworten Zitat