Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Beliebige Fläche füllen

  Alt 10. Feb 2005, 13:29
Zitat von Urba:
Nun ist es aber so dass ich eine beliebige Fläche über eine andere legen möchte und diese dann transparent durchschimmert. Das zu bewerkstelligen habe ich auch hinbekomme, allerdings muss ich dafür alle Punkte INNERHALB dieser Fläche durchgehen. Klappen tut das auch, allerdings leidet die Performance sehr darunter.
Ich habe das jetzt so verstanden, dass du die Fläche so zeichnest, dass die Pixel direkt vorm Zeichnen mit dem Hintergrund verrechnet werden, oder?
Ich würde mir für sowas dann eher einen Buffer machen, in diesen die Fläche deckend zeichnen, und dann halbtransparent auf den Canvas zeichnen. Ohne 3D-Gedöns wird man das zwar nie so schnell bekommen wie mit DirectX/OpenGL/etc., aber mein Grafik-General-Tipp, die Graphics32-Lib, könnte sich ganz gut dazu eignen, da sie von Hause aus gut mit Transparenzen umgehen kann.

Zitat von Urba:
FloodFill geht nicht, weil ich ja keine festen Flächen habe
Das verstehe ich jetzt nicht ganz, wie du das meinst. Sind die Flächen nicht durch eine Umrandung geschlossen beschreibbar, oder ging es hierbei um die Transparenz?
Wie gesagt, ich würde erst deckend in einen Buffer zeichnen, und dann in einem Rutsch den Buffer tranzparent übertragen.
(Bei der Graphics32: TBitmap32.DrawTo(Canvas: TCanvas); und TBitmap32.DrawMode = dmBlend, und einen gewünschten MasterAlpha-Wert für die Deckkraft angeben. Am besten mal in die zugehörige Hilfe+Beispielprojekte gucken, es gibt mehrere Möglichkeiten da dran zu gehen. Layers wären u.U. auch was für dich.)


Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat