Begin
SetWindowTitle('Разноцветная картинка');
SetWindowSize(600, 400);
For i := 0 To WindowWidth Do
Begin
r := Round(255 * i / WindowWidth);
g := Round(128 * (WindowWidth - i) / WindowWidth);
b := 0;
SetColorRGB(r, g, b);
Line(i, 0, i, WindowHeight);
End;
For i := 1 To 10 Do
Begin
x := Random(WindowWidth);
y := Random(WindowHeight);
radius := Random(50) + 20;
r := Random(256);
g := Random(256);
b := Random(256);
SetColorRGB(r, g, b);
Circle(x, y, radius);
End;
For i := 1 To 5 Do
Begin
x := Random(WindowWidth);
y := Random(WindowHeight);
side := Random(80) + 20;
r := Random(256);
g := Random(256);
b := Random(256);
SetColorRGB(r, g, b);
Rectangle(x, y, x + side, y + side);
End;
procedure DrawColorfulSpiral;
var
x, y: Integer;
angle, radius: Real;
i, colorStep: Integer;
begin
// Установим размеры окна
Window.SetSize(800, 600);
Window.CenterOnScreen;
// Центр экрана
x := Window.Width div 2;
y := Window.Height div 2;
// Цикл для рисования спирали
for i := 1 to 360 * 4 do
begin
// Установка цвета, постепенно изменяющегося по кругу
SetPenColor(RGB((i * colorStep) mod 256, (i * colorStep * 2) mod 256, (i * colorStep * 3) mod 256));
// Вычисление новых координат
x := Round(Window.Width div 2 + radius * Cos(angle));
y := Round(Window.Height div 2 + radius * Sin(angle));
// Рисуем линию до новых координат
LineTo(x, y);
// Увеличение угла и радиуса
angle := angle + 0.1;
radius := radius + 0.1;
end;
end;
begin
// Вызов процедуры рисования спирали
DrawColorfulSpiral;
// Ожидание нажатия клавиши перед закрытием окна
Readln;
end.
Программа проверялась на PascalABCNET