48 Stimmen

Wie erstelle ich einen zufälligen Hexadezimalstring, der eine Farbe darstellt?

Ich generiere einige Diagramme, die einen Hexadezimalwert für die Farben benötigen.

Beispiel:

Ich erstelle diese dynamisch, daher möchte ich den Hexadezimalcode für jede dataseries zufällig generieren.

Was ist der beste Weg, dies zu tun?

0 Stimmen

Ich habe gerade bemerkt, dass mein Beispiel nicht angezeigt wurde. Ich vermute, dass dies daran liegt, dass es sich um eine XML-Zeichenfolge handelte... Na ja, es war nicht wichtig, da die Antwort gut funktioniert hat.

1 Stimmen

@rahkim - Frage aktualisiert, um das zu beheben, und einen aussagekräftigeren Titel hinzugefügt

4voto

Beska Punkte 12341

Ich habe bemerkt, dass du (Rahkim) einen Kommentar zu Gregs Beitrag abgegeben hast, dass du seinen Idee (die Sättigung und den Wert konstant zu halten und nur den Farbton zu variieren...eine gute Idee) gerne in Code umsetzen würdest. Du kannst! Oder besser gesagt, jemand hat das bereits für dich gemacht!

Ich habe diesen Blogbeitrag über Konvertierung von HSV in RGB-Farben mit C# gefunden, und ich bin sicher, dass es noch mehr gibt. Auf diese Weise wirst du wahrscheinlich eine bessere Farbpalette erhalten als wenn du sie völlig zufällig auswählst.

Zusätzlich macht diese Methode es natürlich einfach, eine schöne Farbpalette zu erhalten...da der Farbton von 0 bis 359 geht, könntest du etwas ähnliches wie folgt einstellen:

Hue = (VorherigerFarbton + 50) % 360;

(Ich habe 50 ausgewählt, da es nicht gleichmäßig in 360 passt, so dass du, wenn du über 360 hinausgehst, nicht sofort wiederholte Farbtöne erhältst. Du müsstest mit dem Wert experimentieren, um eine ideale Trennung zu erreichen, abhängig davon, wie viele verschiedene Farben du erwartest.)

Auf diese Weise musst du dir keine Gedanken darüber machen, dass der Code zufällig zwei Farben auswählt, die sehr nah beieinander liegen, wenn es noch viel ungenutzten "Farbton"-Platz gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X