Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Градиентная заливка


Автор: Всемогущий 17.5.2007, 20:37
Дано:2 цвета заданные  RED GREEN BLUE каждый от 0 до 255 (стандарт)

задача: за N шагов перейти от одного цвета к другому.

Подскажите пожалуйста что из чего вычитать,и по сколько smile 

Автор: Bitter 17.5.2007, 21:17
Вроде должно быть всё понятно ))

Код

  rgb1:=Color1;   // Первый цвет

  rgb2:=Color2;   // Второй цвет

  m:=100;            // Количество шагов

  rgb3.r:=(rgb2.R-rgb1.R)/m;    // Шаг по каждой составляющей
  rgb3.g:=(rgb2.G-rgb1.G)/m;
  rgb3.b:=(rgb2.B-rgb1.B)/m;

  for j:=0 to m do  // Рисуем одномерную палитру
   Image1.Picture.Bitmap.Canvas.Pixels[j,0]:=RGB(rgb1.r+Round(rgb3.r*j),
                                                                              rgb1.g+Round(rgb3.g*j),
                                                                              rgb1.b+Round(rgb3.b*j));

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)