uses GraphABC;
procedure DrawSpiral;
var
angle, radius: Real;
x, y, i: Integer;
colors: array[1..7] of Color;
begin
// Задаем цвета
colors[1] := clRed;
colors[2] := clOrange;
colors[3] := clYellow;
colors[4] := clGreen;
colors[5] := clBlue;
colors[6] := clIndigo;
colors[7] := clViolet;
// Устанавливаем начальные значения
angle := 0;
radius := 0;
// Рисуем спираль
for i := 1 to 1000 do
begin
x := Round(200 + radius * Cos(angle));
y := Round(200 + radius * Sin(angle));
SetPixel(x, y, colors[i mod 7 + 1]);
// Увеличиваем угол и радиус
angle := angle + 0.1;
radius := radius + 0.1;
end;
end;
begin
// Устанавливаем размер окна
SetWindowSize(400, 400);
// Вызов процедуры рисования спирали
DrawSpiral;
// Ожидание закрытия окна
ReadLn;
end.
Uses GraphABC;
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;
ReadKey;
End.
uses GraphABC;
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;
// Начальные значения
angle := 0;
radius := 5;
colorStep := 1;
// Цикл для рисования спирали
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