Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цвет из градиента [D7, WinXP]


Салат ©   (2007-02-03 12:43:00) 

Здравствуйте! Как можно вычислить значение цвета между зелёным (rgb 0 120 0) и красным (rgb 180 0 0) в зависимости от некоторой переменной I, которая принимает значения от 0 до 300. Другими словами, как вычислить цвет (или значение красной составляющей... я не очень силён в графике), если чем меньше I, тем "краснее" цвет?

I=300, цвет rgb(0,120,0)
I=0, цвет rgb(180,0,0)

Ссылки на руководства по алгоритмам приветствуются!
Заранее спасибо.


@!!ex   (2007-02-05 09:37:00) [1]

бррр. теме место в "начинающим"
Тупо находим расстояние между точками(в данном случае разница между значениями цветов), значение цвета в точке равно начальному значению + расстояние между точками*на коэфициент рсстояния от 0 до 1.

R:=R1+(R2-R1)*(I/300);
G:=G1+(G2-G1)*(I/300)
B:=B1+(B2-B1)*(I/300)


Vovan #2   (2007-02-03 13:21:00) [2]

GetColorBetween
http://www.efg2.com/Lab/Library/UseNet/2001/0821.txt


Pavia   (2007-02-03 13:16:00) [3]

R1:=0;
R2:=180;
R:=R1*A+(1-A)*R2; Где A может принимать значения от 0 до 1. Или
R:=R1*I/300+(300-I)/300*R2;
И так для всех состовляющих цвета.


Vovan #2   (2007-02-03 13:12:00) [4]

RGB модель - это цветовой куб 256х256х256. Тебе нужно соединить две точки в этом кубе и разбить отрезок на 300 частей.


Наверх

Титульная страница Поиск, карта сайта Написать письмо