Форум: "Media";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизКак можно попроще сделать градацию цвета Найти похожие ветки
← →
Сергей Ф. (2003-12-11 17:20) [0]Здаствуй АЛЛ!!!
поможите с вопросом, уже запутался.
Как можно попроще сделать градацию цвета, из (а) -> (в),
выбот делает юзер.
Пример: из зелёного в красный.
Спасибочки.
← →
BOA_KAA © (2003-12-11 17:53) [1]Куда уж проще...
procedure TLineInterpolation.SetIntervals;
var
RGBFrom: array[0..2] of Byte; //значения R, G, B составляющих первого цвета
RGBDiff: array[0..2] of Integer; // разница между R, G, B составляющими
// первого и второго цветов
I: Integer;
R: Byte; //R-составляющая цвета интервала
G: Byte; //G-составляющая цвета интервала
B: Byte; //B-составляющая цвета интервала
begin
// Извлекаем R, G, B составляющие
RGBFrom[0]:=GetRValue(ColorToRGB(FFromRGB));
RGBFrom[1]:=GetGValue(ColorToRGB(FFromRGB));
RGBFrom[2]:=GetBValue(ColorToRGB(FFromRGB));
// Вычисляем разницу
RGBDiff[0]:=GetRValue(ColorToRGB(FToRGB))-RGBFrom[0];
RGBDiff[1]:=GetGValue(ColorToRGB(FToRGB))-RGBFrom[1];
RGBDiff[2]:=GetBValue(ColorToRGB(FToRGB))-RGBFrom[2];
SortValues;
// Длина массива интервалов
// NIntervals:=ValueCount-1;
SetLength(FColors, NIntervals);
SetLength(Interval, NIntervals);
for I:=0 to NIntervals-1 do
begin
//Установка левой и правой границы интервала
Interval[I].Left:=Value[I];
Interval[I].Right:=Value[I+1];
// Вычисляем составляющие цвета интервала
R:=RGBFrom[0]+MulDiv(I, RGBDiff[0], NIntervals-1);
G:=RGBFrom[1]+MulDiv(I, RGBDiff[1], NIntervals-1);
B:=RGBFrom[2]+MulDiv(I, RGBDiff[2], NIntervals-1);
// Микшируем R, G, B составляющие в цвет интервала
Interval[I].Color:=RGB(R, G, B);
FColors[I]:=Interval[I].Color;
end;
end;
Это метод из моего класса. Разберешься, я думаю...
← →
Сергей Ф. (2003-12-11 21:39) [2]Если можно подробней ту часть после
SortValues;
что там за переменные.
SetLength(FColors, NIntervals); ?
SetLength(Interval, NIntervals); ?
Interval[I].Left:=Value[I]; ?
Interval[I].Right:=Value[I+1]; ?
Очень сложно пока разобратся, я ещё не такой спец.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c