Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите с паскалем

кто может написать код для паскаля абс с использованием графа абс, чтобы он нарисовал какую-нибудь красивую разноцветную картинку? для домашки надо

По дате
По рейтингу
Аватар пользователя
Просветленный
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 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

Аватар пользователя
Просветленный

Как такой вариант?

1234567891011121314151617181920212223242526272829303132333435363738394041
 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. 
Аватар пользователя
Мыслитель
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
 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. 
 
Аватар пользователя
Знаток

Думай