Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

Заполнение Canvas цветами от синего к красному   Найти похожие ветки 

 
guitarist ©   (2006-02-09 17:48) [0]

Вот решил сделать что-то типа визуализатора. Каждой точке canvas присвоил какое-то число. А теперь хочу вывести этот canvas таким образом, чтобы чем больше число, тем ближе к синему был цвет, а чем меньше тем ближе к красному. Подобрать формулу сам что-то пока не смог. Помогите, пожалуйста.
PS Только про зеленый забывать не следует, я думаю, если зеленый в RGB принять за константу работать не будет, хотя я может быть ошибаюсь.


 
antonn ©   (2006-02-09 18:56) [1]

глянь тут:
http://delphimaster.net/view/2-1137971881/


 
XProger ©   (2006-02-09 23:55) [2]

const
 W = 640;
 H = 480;
var
 i, c : Integer;
begin
 for i := 0 to H - 1 do
 begin
   c := i * 255 div H;
   Canvas.Pen.Color := RGB(c, 0, 255 - c);
   Canvas.MoveTo(0, i);
   Canvas.LineTo(W, i);
 end;
end;


 
guitarist ©   (2006-02-10 13:24) [3]

XProger.
То что предложили Вы -- это что-то вроде градиентной заливки, а нужно именно то, что я написал


 
antonn ©   (2006-02-10 13:27) [4]

guitarist ©   (10.02.06 13:24) [3]
а нужно именно то, что я написал

без пол-литра не понять, что вы хотите...


 
antonn ©   (2006-02-10 13:38) [5]

может так:
function GetColorMegduRandB(level,Max:integer):Tcolor;
var r,b:byte;
begin
r:=trunc(level*255/max);
b:=255-r;
result:=rgb(r,0,b);
end;


использование примерно такое:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
canvas.Brush.Color:=GetColorMegduRandB(TrackBar1.Position,TrackBar1.Max);
canvas.FillRect(rect(0,0,100,100));
end;


 
XProger ©   (2006-02-10 20:04) [6]

const
 MAX_NUM = 640;
...
procedure TForm1.NumOut(X, Y: Integer; Value: Integer);
var
 c : Integer;
begin
 c := Value * 255 div MAX_NUM;
 Canvas.Font.Color := RGB(c, 0, 255 - c);
 Canvas.TextOut(X, Y, IntToStr(Value));
end;

К сожалению, я - человек не пьющий, так что сути вопроса ясно понять не могу...


 
guitarist ©   (2006-02-10 21:41) [7]

Хм, а мне казалось понятно объяснил.

Вот посмотрите, пожалуйста, как сделать хочется.

http://avtogoal.narod.ru/123.JPG


 
XProger ©   (2006-02-10 23:40) [8]

Для человека с "незаконченным высшим" образованием - стыдно не решить подобную задачу. Всё необходимое для её решения мы дали, осталось только чуть-чуть подумать и решить задачу. Оставлю это удовольствие Вам...



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.021 c
15-1152250195
Колдун
2006-07-07 09:29
2006.08.06
Языческий праздник


15-1152711115
Ламот
2006-07-12 17:31
2006.08.06
Цифровая аппаратура в «жарком» климате…


15-1152097725
pavel_guzhanov
2006-07-05 15:08
2006.08.06
Умер Андрей Краско :((


15-1152612327
SoftService
2006-07-11 14:05
2006.08.06
Оцените проект


2-1153375514
rosl
2006-07-20 10:05
2006.08.06
формат 1С





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский