![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цвет из градиента [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 частей.