Komplementärfarben beim Borland Builder



  • Hallo

    Wenn ich zeichnen will, und das mit der Komplementärfarbe mache ich das über den Stiftmode:

    ...->Pen->Mode=pmNot;

    Wie aber frage ich eine Komplementärfarbe ab?

    if (...->Pixels[x][y]== ?? ) //zb. Komplementärfarbe von clWhite oder clRed

    Kann mir jemand bei diesem Problem weiterhelfen??
    Danke schon mal im voraus.



  • Hallo,

    Komplementärfarbe zu was? Du hast doch nur ein Pixel. Wenn du nach einer spezifische Farbe suchen willst kannst du dir ja z.Bsp. über diese Funktion die Komplementärfarbe bestimmen.

    TColor GetComplementColor( const TColor& Color)
    {
         int rgbcol = ColorToRGB(Color);
         int rcol = (rgbcol & 0xFF0000) >> 16;
         int gcol = (rgbcol & 0x00FF00) >> 8;
         int bcol = rgbcol & 0x0000FF;
         return static_cast<TColor>(RGB(255-bcol,255-gcol,255-rcol));
    }
    


  • Ich bin gerade dabei ein kleines Spiel zu programmieren. In diesem Spiel kann ich die Hintergrundfarbe des Spielfeldes tauschen. Die Figuren auf dem Spielfeld sollen in der Komplementärfarbe dargestellt werden. Wenn nun zwei Figuren, die die gleiche Komplemntärfarbe vom HG haben, aufeinanderprallen soll eine Reaktion ausgelöst werden.

    if (...->Pixels[x][y]== Komplementärfarbe )



  • Hallo

    Wie schon gesagt ergibt das keinen Sinn. Eine Farbe ist eine Farbe. Du kannst zwar von einer Farbe die Komplementärfarbe erzeugen lassen aber das Ergebnis ist wieder eine normale Farbe. Es wird nicht gespeichert wie die Farbe erzeugt wurde, und damit hast du in dem Pixels-Array nur Farben und nicht Farben und Komplementärfarben. Du must dir den Status bzw. die Komplementärfarbe anderswo merken.

    bis bald
    akari


Anmelden zum Antworten