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




Ależ moja także jest bezpieczna (IMG:style_emoticons/default/smile.gif) Zauważ, że możliwe do przyjęcia wartości to 0, 52, 104, 156, 208 (IMG:style_emoticons/default/smile.gif) Potem warunek nie jest spełniany więc jedyne co się dzieje w tych pętlach to mieszanie powyższych kombinacji. Całość nie ucieknie poza wartości 256, bo warunek pętli nie dopuści do 260 tylko zakończy pętlę. Zwróć też uwagę, że chcąc, nie chcąc jesteśmy zmuszani do zaokrągleń. czy w dół, czy w górę to kwestia uzgodnienia, ale to pierwsze zwiększa liczbę dostępnych kolorów do (n+1)^3 czyli mamy wtedy nie 5^3 = 125, ale 6^3 = 216 (IMG:style_emoticons/default/smile.gif) Owszem, kolory są wtedy pełniejsze i pozostaje w sumie to do wyboru użytkownika co wybierze. Tak czy inaczej ucieczka od liczenia modulo z $i to likwidacja ogromnej ilości pustych przejść.

EDIT: A jedyne bezpieczne to tak naprawdę potęgi 2 mniejsze lub równe 256, czyli: 2, 4, 8, 16, 32, 64, 128, 256 ze wskazaniem na 2, 4, 8 (IMG:style_emoticons/default/smile.gif) Jedyne naprawdę bezpieczne palety to posiadające do 256 kolorów, co dość skutecznie ogranicza skalę barwną.
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: 6.10.2025 - 22:38