konto usunięte

Temat: Sposób na różnorodne kolory RGB

Czy ktos spotkał się z algorytmem tworzenia jak najbardziej różniących się kolorów dla CSS? Mam taki problem że muszę oznaczyć 50-100 odzielnych punktów i stworzyć do nich legendę a jakiekolwiek ikonki są zbyt duże.

konto usunięte

Temat: Sposób na różnorodne kolory RGB

jakiś czas temu poruszałem ten temat. może tam znajdziesz inspirację
http://www.goldenline.pl/forum/2930472/losowe-generowa...
Jarosław K.

Jarosław K. właściciel, CRS

Temat: Sposób na różnorodne kolory RGB

http://kuler.adobe.com/#themes/rating?time=30

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Jarosław K.:
http://kuler.adobe.com/#themes/rating?time=30

Ale 5 mnie nie urządza bo ja potrzebuje przynajmniej 10x tyle, chodziło mi raczej o jakis opis jak kolory RGB są postrzegane przez ludzkie oko i na jakiej zasadzie dobierać wartości aby były łatwe do odróżnienia.

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Walczyłem kiedyś z podobnym problemem. Jedyne co zostało mi w historii na ten temat to:
http://stackoverflow.com/questions/309149/generate-dis....

Może się przyda :)

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Dawid Zając:
Czy ktos spotkał się z algorytmem tworzenia jak najbardziej różniących się kolorów dla CSS? Mam taki problem że muszę oznaczyć 50-100 odzielnych punktów i stworzyć do nich legendę a jakiekolwiek ikonki są zbyt duże.

Rzecz relatywnie prosta. Tutaj masz kawałek kodu który mi się zachował w katalogu:


<?php
$step = 50;

function dec2color($r, $g, $b) {
$r = strlen(dechex($r)) == 1 ? '0'.dechex($r) : dechex($r);
$g = strlen(dechex($g)) == 1 ? '0'.dechex($g) : dechex($g);
$b = strlen(dechex($b)) == 1 ? '0'.dechex($b) : dechex($b);
return '#'.$r.$g.$b;
}

$r = 0;
$g = 0;
$b = 0;

for($r = 1; $r <= 255; $r+=$step) {
for($g = 1; $g <= 255; $g+=$step) {
for($b = 1; $b <= 255; $b+=$step) {
printf('<div style="width: 100px; height: 100px; background: %1$s; color: #fff;">%1$s</div>', dec2color($r, $g, $b));
}
}
}


Zwiększając $step zmieniasz odpowiednio ilość kolorów ale dzięki temu masz między nimi większe różnice. Tylko nie ustawiaj zbyt małych wartości z uwagi na to że wtedy będziesz miał 16 milionów iteracji.

Skrypt idzie od czarnego do białego.Dariusz Półtorak edytował(a) ten post dnia 13.08.12 o godzinie 16:15
Mateusz K.

Mateusz K. miszcz wwwujitsu

Temat: Sposób na różnorodne kolory RGB

Dawid Zając:
Czy ktos spotkał się z algorytmem tworzenia jak najbardziej różniących się kolorów dla CSS? Mam taki problem że muszę oznaczyć 50-100 odzielnych punktów i stworzyć do nich legendę a jakiekolwiek ikonki są zbyt duże.

Kolory generujesz w palecie HSC lub LAB operując nasyceniem przy jak najmniejszej ilości kolorów i ch odcieni, co daje najbardziej zróżnicowane względem siebie wartości widoczne ludzkim okiem.
Świetny generator pod tym względem: http://phrogz.net/css/distinct-colors.html
Z drugiej strony, jeśli nie przekroczysz 2 setek wyników, skorzystaj z gotowej palety web safe colors, potocznie zwanej html colors: http://www.w3schools.com/Html/html_colors.asp

edit: zakładając że chodzi o wynik, nie o metodykę.Wojciech J. edytował(a) ten post dnia 13.08.12 o godzinie 16:25

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Myślę że problem został rozwiązany ;) Dzięki za wskazówki.

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Wystarczy, że wygenerujesz sobie pewien losowy kolor startowy
(css background-color: rgb(x, x, x); ), a następnie na podstawie tych wartości zrobisz zwyczajną negację z wykorzystaniem abs().

konto usunięte

Temat: Sposób na różnorodne kolory RGB

Dawid Zając:
Czy ktos spotkał się z algorytmem tworzenia jak najbardziej różniących się kolorów dla CSS? Mam taki problem że muszę oznaczyć 50-100 odzielnych punktów i stworzyć do nich legendę a jakiekolwiek ikonki są zbyt duże.

Bierzesz jakikolwiek czynnik, który te punkty wyróżnia (współrzędne, id w bazie - cokolwiek) i robisz na tym haszowanie (MD5 albo SHA1) - następnie wycinasz pierwsze 6 znaków z utworzonego hasza - i masz gotowe RGB-y



Wyślij zaproszenie do