Рисование значка Ubuntu: перевод на Free Pascal

Узнай цену своей работы

Формулировка задачи:

Есть код которий рисует значок юбунту, как его переделать из АБС Паскаля в Фри паскаль? Сколько не пробую, не получаеться.
program labor9;
uses Graph;
begin
  floodfill(1,1,clblack);
  rectangle(100,100,700,700);
  setpencolor(clred);
  circle(400,400,150);
  floodfill(400,400,clred);
  circle(400,400,80);
  floodfill(400,400,clwhite);
  circle(400,400,50);
  floodfill(400,400,clred);
  setpencolor(clred);
  rectangle(400,390,500,410);
  floodfill(420,400,clred);
  setpencolor(clred);
  setpenwidth(18);
  line(400,400,350,320);
  floodfill(390,360,clred);
  setpenwidth(1);
  setpenwidth(18);
  line(400,400,350,480);
  floodfill(390,360,clred);
  setpenwidth(1);
  circle(320,400,18);
  floodfill(320,400,clred);
  circle(320,400,13);
  floodfill(320,400,clwhite);
  circle(440,330,18);
  floodfill(440,330,clred);
  circle(440,330,13);
  floodfill(440,330,clwhite);
  circle(440,470,18);
  floodfill(440,470,clred);
  circle(440,470,13);
  floodfill(440,470,clwhite);
end.

Решение задачи: «Рисование значка Ubuntu: перевод на Free Pascal»

textual
Листинг программы
{$mode tp}
program labor9;
uses
  Graph;
var
  gd, gm : integer;
  cx, cy, x, y : integer;
  i, angle : integer;
begin
  initgraph(gd, gm, '');
  cx := getmaxx div 2; cy := getmaxy div 2;
 
  setcolor(red);
  setfillstyle(solidfill, red);
  fillellipse(cx, cy, 200, 200);
  setfillstyle(solidfill, white);
  fillellipse(cx, cy, 120, 120);
  setfillstyle(solidfill, red);
  fillellipse(cx, cy, 100, 100);
 
  setlinestyle(solidln, 0, thickwidth);
  for angle := 0 to 2 do
  begin
    x := cx + trunc(144 * cos(pi/4 + angle*2*Pi/3));
    y := cy - trunc(144 * sin(pi/4 + angle*2*Pi/3));
    setfillstyle(solidfill, red);
    fillellipse(x, y, 30, 30);
    setfillstyle(solidfill, white);
    fillellipse(x, y, 25, 25);
 
    for i := -2 to 2 do
    line(cx, cy,
      cx + trunc(200 * cos(i*pi/180 + angle*2*Pi/3)),
      cy + trunc(200 * sin(i*pi/180 + angle*2*Pi/3))
    )
  end;
  readln;
  closegraph;
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • gd, gm: Integer;
    • cx, cy, x, y: Integer;
    • i, angle: Integer;
    • Переменная red объявлена как константа цвета.
  2. Инициализация графического режима с помощью функции initgraph.
  3. Установка центра окружности и размера с помощью функций getmaxx, getmaxy, setcolor, setfillstyle и fillellipse.
  4. Цикл для рисования лучей с углом от 0 до 2.
    • Вычисление координат x и y с помощью функций cos и sin.
    • Рисование окружностей с помощью функции fillellipse.
    • Рисование линий с помощью функции line.
  5. Цикл для рисования лучей с углом от -2 до 2.
    • Вычисление координат x и y с помощью функций cos и sin.
    • Рисование линий с помощью функции line.
  6. Завершение работы с графикой с помощью функции closegraph.
  7. Ожидание ввода пользователя с помощью функции readln.
  8. Завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы