Thema: Delphi Pen.Mode pmNotXor

Einzelnen Beitrag anzeigen

DennyC

Registriert seit: 27. Jan 2003
Ort: Berlin
47 Beiträge
 
Delphi 7 Professional
 
#2
  Alt 15. Mär 2003, 20:06
Hallo Mali,

der Hinweis Deines IT-Pädagogen ist mathematisch betrachtet gar nicht so übel, technisch gesehen aber eher mittelmäßig. Vereinfacht dargestellt heißt das: Wenn Du den Pen in Deinem Zeichenprogramm auf pmNotXor setzt, wird an den Stellen, an denen Deine Linie entlangführt, das Bild so was ähnliches wie Pixel für Pixel invertiert, wie ein Negativ eines Fotos. Sagen wir, Du ziehst eine Linie auf weißem Hintergrund und kreuzt dabei bereits vorher gezeichnete schwarze Linien. Die neue Linie wird schwarz dargestellt - außer an den Kreuzungsstellen mit den vorhandenen Linien. Die werden zu weißen Schnittpunkten. Und jetzt der Clou: Solltest Du Dich für eine anderen Endpunkt Deiner Linie entscheiden, wird zunächst die alte Linie mit dem alten nicht mehr gewünschten Endpunkt einfach nochmal gezeichnet, also nochmal "invertiert" - alles schwarze wird wieder weiß, alles weiße wieder schwarz, so wie vorher, es hat sich nichts verändert. Anschließend wird die Linie mit dem neuen Endpunkt gezeichnet. Also: Minus mal Minus ergibt Plus - gilt auch hier. Sollte der richtige Endpunkt gefunden worden sein, zeichnest Du die neue Linie einfach mit dem PenMode pmCopy, dann ist sie fest im Bild integriert. Hab ich jetzt zuviel verraten?

Ansonsten sei noch bemerkt: TImage eignet sich nicht für ein Zeichenprogramm, ist nur zum Ansehen gedacht. Eine Komponente wie TPaintBox und auch TCanvas (direkt auf der Form zum Beispiel) klingt doch schon viel eher nach Zeichnen, oder? Und das Zeichnen mittels pmNotXor ist auch out. Halte Dir beim Zeichnen lieber eine zweite nicht sichtbare Zeichenfläche im Hintergrund, die Du vor jeder temporären Zeichenaktion anzeigst und dann erst drauf malst. Mit dem Stichwort BackBuffer wird das ganze sogar noch flackerfrei, was Dir sonst nur schwerlich gelingen wird.

Auch wenn Dich das alles noch mehr verwirrt haben wird... Ans Werk!

Denny
  Mit Zitat antworten Zitat