Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   перевод из HSB в RGB (https://javascript.ru/forum/events/28646-perevod-iz-hsb-v-rgb.html)

cyber 27.05.2012 22:10

перевод из HSB в RGB
 
нужно написать скриптик перевода из HSB в RGB, вот нашел формулу для HSV > RGB .
не могу понять чем отличается HSB/HSL/HSV и подходит ли эта формула для всех 3х случаев

Aetae 27.05.2012 22:23

http://ru.wikipedia.org/wiki/HSL
Читаем вторую строчку.

http://bit.ly/Kfl3If

cyber 27.05.2012 22:31

Цитата:

Сообщение от Aetae (Сообщение 177019)
http://ru.wikipedia.org/wiki/HSL
Читаем вторую строчку.

http://bit.ly/Kfl3If

HSL отличаеться , а HSV и HSB похожи как я понял из следущего
Цитата:

HSV (англ. Hue, Saturation, Value — тон, насыщенность, значение) или HSB (англ. Hue, Saturation, Brightness — оттенок, насыщенность, яркость) — цветовая модель, в которой координатами цвета являются:

cyber 27.05.2012 22:36

Цитата:

Сообщение от Aetae (Сообщение 177019)
http://ru.wikipedia.org/wiki/HSL
Читаем вторую строчку.

http://bit.ly/Kfl3If

мне не нужен готовый скрипт , просто помогите формулу понять

Aetae 27.05.2012 22:38

Понять вам сможет помочь только ваш собственный мозг. Увы, я не смогу вам его телепатическими лучами настроить на правильный лад.

melky 27.05.2012 22:42

Цитата:

Сообщение от cyber
подходит ли эта формула для всех 3х случаев

нет. там видно, что формулы разные
Цитата:

Сообщение от cyber
мне не нужен готовый скрипт , просто помогите формулу понять

что значит "понять"? описание переменных в формуле дано под ней.

cyber 27.05.2012 22:46

распишу по порядку что бы было понятней , что не понятно мне..
эту строку я понимаю

тут делем на 60 потому что шкала HUE состоит из 6 частей,
значение этой строки понять не могу

и проблемы с пониманием :





cyber 28.05.2012 00:01

Цитата:

http://bit.ly/Kfl3If
кстати код на который ведет эта ссылку работает не правильно..
сравнивал с adobe photoshop

cyber 28.05.2012 00:47

вроде получилось но проблема c q почему воозвращает не правильное значение
http://learn.javascript.ru/play/FJMYG

cyber 28.05.2012 00:57

все вот рабочий вариант (результаты сравнивал с photoshop), может кому пригодиться
function HSVtoRgb (H, S, V)
      {
           var f , p, q , t, lH;
        S = (S > 1 )? S/100 : S;
         V = (V > 1)? V/100 : V;
         lH = parseInt (H / 60);
        f = H/60 - lH;
        p = V * (1 - S);
        
       q = V *(1 - S*f);
        
        t = (1 - (1-f)* S);
       
      
      switch (lH)
      {
        case 0: R = V; G = t; B = p; break;
        case 1: R = q; G = V; B = p; break;
      case 2: R = p; G = V; B = t; break;
      case 3: R = p; G = q; B = V; break;
     case 4: R = t; G = p; B = V; break;
     case 5: R = V; G = p; B = q; break;}
       
        
        return [parseInt(R*255), parseInt(G*255), parseInt(B*255)];
      }

alert(HSVtoRgb(330, 10,20));


Часовой пояс GMT +3, время: 03:18.