Главная страница
    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.012 c
1-1150961942
webpauk
2006-06-22 11:39
2006.08.06
Определение hyperlink


3-1148922065
alpha5
2006-05-29 21:01
2006.08.06
Странная ошибка


3-1149255382
viper_gooz
2006-06-02 17:36
2006.08.06
DBF файлы


2-1153383082
Pups
2006-07-20 12:11
2006.08.06
Подскажите по классам!!!


2-1153123735
Leonid
2006-07-17 12:08
2006.08.06
Нужен компонент для отсылки e-mail





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский