Главная страница
    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
2-1153395744
MOUSE911
2006-07-20 15:42
2006.08.06
Таблицы БД


15-1152095029
igrek23
2006-07-05 14:23
2006.08.06
компоненты для работы с топографическими картами


1-1151246804
AlexeyT
2006-06-25 18:46
2006.08.06
XP themes: TSpeedButton, TGroupBox


15-1152699427
qwe777
2006-07-12 14:17
2006.08.06
Тока поступил и все говорят САБЖ. Что то такое?


15-1152387990
ArtemESC
2006-07-08 23:46
2006.08.06
Помогите перевести, пожайлуйста...





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