Frage

Ich habe ein WTL C ++ Anwendung, und ich mag, dass die Benutzer in der Lage sein, verschiedene Farben für einige der UI-Elemente auszuwählen und eine Verlaufsfüllung mit dem GradientFill API-Aufruf gilt. Anstatt jedoch der Benutzer zu lassen, um die Start- und End-Farben für den Farbverlauf wählen, würde Ich mag sie eine ‚Basis‘ Farbe auswählen zu können und für meine Anwendung geeignet Start / End-Farben automatisch zu berechnen. Ich möchte mit einer Füllung, um am Ende, die auf die eine Windows-Anwendungen für verschiedene Themen Elemente ähnlich ist. Die Grundfarbe könnte die ‚Mitte‘ Farbe des Gradienten mit meiner Anwendung irgendwie eine etwas hellere Farbe für den Start des Gradienten und eine etwas dunklere Farbe für die Gradienten Ende zu berechnen. Alternativ könnte ich die Basis als Startfarbe verwenden und das Ende oder umgekehrt berechnen.

Ich bin sicher, würde dies mit einiger RGB Makro Magie relativ einfach sein, aber ich weiß nicht, wo wirklich zu starten. Irgendwelche Ideen wäre willkommen.

War es hilfreich?

Lösung

Der RGB-Farbraum ist dafür nicht geeignet. Verwenden Sie HSL oder HSV , es ist einfach zu automatisch generieren einen gut aussehenden Gradienten durch eine individuelle Variation Komponente. Umwandlung von HSL / V in ein RGB-Triplett Sie in der API verwenden können, ist einfach .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top