PHP generieren RGB
Ich bin vor dieser situation, wo ich eine ID, die aus einer Datenbank kommt (so kann es sein, 1, 100, 1000, ...) und ich muss generiert zufällige Farben, aber gleicher ID ' s sollten in der gleichen Farbe.
Irgendeine Idee, wie ich diese erreichen können?
Dank!
- Haben Sie irgendeinen code (oder pseudocode,) bisher geschrieben?
- was ist mit bit-Aufteilung? Bit0->Bit7 von R, Bit1->Bit7 von G, Bit2->Bit7 von B, Bit3->Bit6 R, ...dies ist zwar kompliziert, es gibt sehr verschiedene Farben, so lange, wie die ID-Raum nicht zu groß ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden einer kryptographischen hash-und clip der bytes, die Sie nicht brauchen:
Die daraus resultierende (code zu generieren) sieht aus wie dies für die zahlen 0-20:
Die offensichtliche Ansatz ist, einfach konvertieren Sie die ID in eine Farbe (z.B. die unteren 8 bits sind die blauen, nächsten 8 bit Grün, 8 Rot - verlassen 8 bit, aber ich bin mir sicher, dass Sie das herausfinden können 😉
Angenommen, dass dies nicht funktioniert (cos Sie am Ende mit einem schrecklichen Farbpalette:
Verwenden Sie ein array (oder hash-Tabelle), um eine Zuordnung der IDs zu den Farben.
Wenn Sie besorgt sind, dass es zu viele IDs, dann könnte man gelten einige hash der ID und verwenden, wie Sie Schlüssel in der "id " Farbe" zuordnen. In diesem Fall sind Sie effektiv sagen eine id hat immer eine Farbe, aber eine Farbe kann verwendet werden, durch viele IDs.
Wenn das array immer sortiert, Sie können mit diesem algorythm bis zu 250 Elemente: