Теперь понял! Вот, наскорую руку исправил недосмотр... Только процедурина там ведь тормознутая. Если очень надо будет прооптимизировать её - обращайся в форум!
А проблема там была в неточных расчётах...
| Код | 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; | |