Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Generowanie palety kolorów
Rysh
post
Post #1





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Zachciało mi się w moim projekcie przypisać każdemu użytkownikowi unikatowy kolor, więc postanowiłem wygenerować po 2-3 odcienie z każdego koloru. Niestety coś mi nie idzie, a nie odpuszczę do póki nie zrobię (IMG:style_emoticons/default/winksmiley.jpg) Kolory są wyświetlane w systemie 16stkowym więc powstał mi oto taki kodzik... Niestety generuje on po 16 odcieni każdego koloru, a ja chce tylko raptem po 2-3 z każdego. Potrzebuje jakiejś wskazówki (IMG:style_emoticons/default/winksmiley.jpg)
  1. for ($red = 0 ; $red <= 255 ; $red += 16) {
  2. for ($blue = 0 ; $blue <= 255 ; $blue += 16) {
  3. for ($green = 0 ; $green <= 255 ; $green += 16) {
  4. $i++;
  5. if (($i % 16) == 0) {
  6. $kolor[] = dechex($red) ."". dechex($blue) ."". dechex($green);
  7. echo "<font color=\"". dechex($red),dechex($blue),dechex($green) ."\">KOLOR: ". dechex($red),dechex($blue),dechex($green)."</font><br />";
  8. }
  9. }
  10. }
  11. }

Pozdrawiam Rysh.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




I po co tak nadmiarowo kombinować? Pomyśl wpierw ile około chcesz tych kolorów jako liczbę będąca sześcianem liczby naturalnej. czyli masz do wyboru:
1 -> 1
2 -> 8
3 -> 27
4 -> 64
5 -> 125
I gdy już wybierzesz to na tyle podziel 256. Przykład? Chcę mieć około 125, więc biorę i zaokrąglam w górę ceil(256/5) = ceil(51.2) = 52
  1. for ($red = 0 ; $red < 256 ; $red += 52) {
  2. for ($blue = 0 ; $blue < 256 ; $blue += 52) {
  3. for ($green = 0 ; $green < 256 ; $green += 52) {
  4. $kolor[] = dechex($red) ."". dechex($blue) ."". dechex($green);
  5. echo "<font color=\"". dechex($red),dechex($blue),dechex($green) ."\">KOLOR: ". dechex($red),dechex($blue),dechex($green)."</font><br />";
  6. }
  7. }
  8. }
Zero modulo, kombinowania wielkiego i minimum ilości pustych przebiegów pętli. Tylko dokładnie tyle ile trzeba.
Powód edycji: [thek]: Własciwie to nie masz ŻADNEGO pustego przebiegu pętli. Wszystkie Ci kolor zwrócą.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 01:08