Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: теория цвета
 
 автор: AlexSol   (10.08.2006 в 16:52)   письмо автору
 
 

имеется значение цвета в 16системе: f38124, он же в десятичной 15958308.

нужно подобрать разные оттенки этого цвета. Как сделать такое?

   
 
 автор: Ziq   (11.08.2006 в 01:17)   письмо автору
 
   для: AlexSol   (10.08.2006 в 16:52)
 

А есть какая-то логика подбора цвета? Или просто нужно подобрать 1000 разных оттенков?

Вообще f38124 на самом деле количество Красного Зеленого и Синего. f3 - к, 82 - з, 24 - с. Считая, что оттенком является похожий цвет, то достаточно увеличивать (уменьшать) одну из этих пар чисел. Если, например, уменьшать количество зеленого, то общий цвет станет краснее ну и т.д.

он же в десятичной 15958308.
В десятичной на самом деле

243 - красный
129 - зеленый
36 - синий


P.S. Может что не так понял час ночи все таки :)

   
 
 автор: AlexSol   (11.08.2006 в 09:42)   письмо автору
 
   для: Ziq   (11.08.2006 в 01:17)
 

я вот сам пытаюсь логику задать (понять).

допустим есть два цвета: ff6600 и ffff00. что нужно сделать чтобы получить цвета в этом диапозоне.

   
 
 автор: Trianon   (11.08.2006 в 09:47)   письмо автору
 
   для: Ziq   (11.08.2006 в 01:17)
 

Оттенок - так на русском языке обычно называют в windows компоненту цвета Hue из метрики (Hue, Saturation, Intensity) . Эта метрика более естественно воспринимается человеком, чем метрика дисплея (Red, Green, Blue).

Весьма грубо алгоритмы преобразования метрик RGB - HSI можно реализовать примерно так (функции rgb2hsi и hsi2rgb):

var    hm = 240,sm = 240, im = 240;
function max3(a, b, c) { return Math.max(a,Math.max(b,c)); }
function min3(a, b, c) { return Math.min(a,Math.min(b,c)); }
function aRGB(qh0,qm1,qm2)
{
  var qh = 1*qh0;
  while(qh >= hm) qh -= hm;
  while(qh <  0 ) qh += hm;
  if(qh*6   < hm) return (qh*6/hm)*(qm2-qm1) + qm1;
  if(qh*2   < hm) return qm2;
  if(qh< 0.75*hm) return (4-(6*qh/hm))*(qm2-qm1) + qm1;
  return qm1;
}
function hsi2rgb(ah,as,ai)
{
   var m1, m2, H, L, S, R, G, B;
   H = 1*ah;    L = ai / im;   S =as / sm;
   m2 = L < 0.5 ? L * (1 + S) : S + L * (1 - S) ; m1 = 2 * L - m2;

   if(S == 0)
        L *= 255,
        R=G=B=L;
   else
        R=  255*aRGB(H+(hm/3),m1,m2),
        G=  255*aRGB(H       ,m1,m2),
        B=  255*aRGB(H-(hm/3),m1,m2);
   return [R, G, B];
}
function rgb2hsi(ar,ag,ab)
{
   var R = ar/255, G = ag/255, B = ab/255,
   m1 = max3(R, G, B), m2 = min3(R, G, B),
   L = (m1 + m2) / 2, H, S, m12, m21, Cr, Cg, Cb;
   if(m1 == m2)
      H = S = 0;
   else
   {
      m12 = m1-m2; m21 = m1+m2;
      S = m12 / (L<0.5 ? m21 : 2-m21 );
      Cr = (m1 - R) / m12, Cg = (m1 - G) / m12, Cb = (m1 - B) / m12;
      H = m1 == R ? Cb - Cg     :
          m1 == G ? 2 + Cr - Cb : 4 + Cg - Cr;
      H *= hm/6;
      if(H<0)  H += hm;  if(H>=hm) H -= hm;
   }
   S*=sm,  L*=im;
   return [H, S, L];
}


если надо подобрать цвет один раз, простейшим способом это сделать, на мой взгляд, будет вызвать редактор доп.цветов из настройки оформления свойств рабочего стола windows. Указать там RGB-компоненты исходного цвета, подкрутить нужное, и взять результат.

   
 
 автор: AlexSol   (11.08.2006 в 10:13)   письмо автору
 
   для: Trianon   (11.08.2006 в 09:47)
 

спасибо за алгоритм, буду разбирать. мне это для Flash надо - указать цвет+диапозон и чтоб генерились похожие цвета.

-------------
ps кажется Hue это именно цвет а не оттенок, за оттенок в ответе две другие составляющие.

   
 
 автор: Trianon   (11.08.2006 в 10:47)   письмо автору
 
   для: AlexSol   (11.08.2006 в 10:13)
 

Первая составляющая действительно обычно называется цветом. Две другие составляющие - насыщенность и яркость.
Но в том интерфейсе настройки цветов оформления рабочего стола, о котором я упомянул,
они фигурируют под названиями - соответственно - оттенок, контраст, яркость.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования