Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Цвета в Delphi


Автор: MacTep 8.10.2004, 22:12
Как на канве нарисовать цветовой круг, т.е. такой, в котором были бы все цвета из палитры RGB. Наверняка, кто-нибудь такое уже делал. Подскажите! Буду благодарен!

Автор: p0s0l 8.10.2004, 22:16
В смысле - цветовой круг ?
В центре к примеру - черная окружность радиусом 1, далее окружность более светлая с радиусом 2 и т.д. ?
Если так, то в каком порядке должны быть расположены цвета ? Все таким макаром не влезут...

Наверное, я всё-таки не понял smile.gif

Автор: MacTep 8.10.2004, 22:24
p0s0l, ты действительно не так понял. Знаешь цветовой куб? А круг этот такой круг, где из одного цвета постепенно цвет переходит в другой. Давай я тебе на e-mail Отправлю прогу, а ты ее посмотришь?

Автор: p0s0l 8.10.2004, 22:25
ок, шли

Автор: p0s0l 8.10.2004, 23:11
smile.gif Теперь понял!
Вот, наскорую руку исправил недосмотр...
Только процедурина там ведь тормознутая. Если очень надо будет прооптимизировать её - обращайся в форум!

А проблема там была в неточных расчётах...
Код
procedure TForm1.Button1Click(Sender: TObject);
var
 b,k,r,g,i: integer;

const
 filval = 48192; // ЭТО МОЖЕШЬ МЕНЯТЬ...

const // ЭТИ НЕ МЕНЯЙ!!!
 fil1 = filval div 3;
 divkoef = round(filval/(pi*2));

begin
for k:=0 to 100 do
begin
 for i:=0 to fil1-1 do
 begin
   g := 255*i div fil1;
   r := 255 - g;
   canvas.Pixels[100+round(k*cos(i/divkoef)),100+round(k*sin(i/divkoef))]:=r+256*g
 end;
 for i:=fil1 to fil1*2-1 do
 begin
   b := 255*(i-fil1) div fil1;
   g := 255 - b;;
   canvas.Pixels[100+round(k*cos(i/divkoef)),100+round(k*sin(i/divkoef))]:=256*g+65536*b;
 end;
 for i:=fil1*2 to filval do
 begin
   r := 255*(i-fil1*2) div fil1;
   b := 255 - r;
   canvas.Pixels[100+round(k*cos(i/divkoef)),100+round(k*sin(i/divkoef))]:=r+65536*b;
 end;
end;
end;

Автор: MacTep 9.10.2004, 07:35
Вот ето благодабрю!!! smile.gif Помог, так помог! Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)