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

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

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

Есть код которий рисует значок юбунту, как его переделать из АБС Паскаля в Фри паскаль? Сколько не пробую, не получаеться.
Листинг программы
  1. program labor9;
  2. uses Graph;
  3. begin
  4. floodfill(1,1,clblack);
  5. rectangle(100,100,700,700);
  6. setpencolor(clred);
  7. circle(400,400,150);
  8. floodfill(400,400,clred);
  9. circle(400,400,80);
  10. floodfill(400,400,clwhite);
  11. circle(400,400,50);
  12. floodfill(400,400,clred);
  13. setpencolor(clred);
  14. rectangle(400,390,500,410);
  15. floodfill(420,400,clred);
  16. setpencolor(clred);
  17. setpenwidth(18);
  18. line(400,400,350,320);
  19. floodfill(390,360,clred);
  20. setpenwidth(1);
  21. setpenwidth(18);
  22. line(400,400,350,480);
  23. floodfill(390,360,clred);
  24. setpenwidth(1);
  25. circle(320,400,18);
  26. floodfill(320,400,clred);
  27. circle(320,400,13);
  28. floodfill(320,400,clwhite);
  29. circle(440,330,18);
  30. floodfill(440,330,clred);
  31. circle(440,330,13);
  32. floodfill(440,330,clwhite);
  33. circle(440,470,18);
  34. floodfill(440,470,clred);
  35. circle(440,470,13);
  36. floodfill(440,470,clwhite);
  37. end.

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

textual
Листинг программы
  1. {$mode tp}
  2. program labor9;
  3. uses
  4.   Graph;
  5. var
  6.   gd, gm : integer;
  7.   cx, cy, x, y : integer;
  8.   i, angle : integer;
  9. begin
  10.   initgraph(gd, gm, '');
  11.   cx := getmaxx div 2; cy := getmaxy div 2;
  12.  
  13.   setcolor(red);
  14.   setfillstyle(solidfill, red);
  15.   fillellipse(cx, cy, 200, 200);
  16.   setfillstyle(solidfill, white);
  17.   fillellipse(cx, cy, 120, 120);
  18.   setfillstyle(solidfill, red);
  19.   fillellipse(cx, cy, 100, 100);
  20.  
  21.   setlinestyle(solidln, 0, thickwidth);
  22.   for angle := 0 to 2 do
  23.   begin
  24.     x := cx + trunc(144 * cos(pi/4 + angle*2*Pi/3));
  25.     y := cy - trunc(144 * sin(pi/4 + angle*2*Pi/3));
  26.     setfillstyle(solidfill, red);
  27.     fillellipse(x, y, 30, 30);
  28.     setfillstyle(solidfill, white);
  29.     fillellipse(x, y, 25, 25);
  30.  
  31.     for i := -2 to 2 do
  32.     line(cx, cy,
  33.       cx + trunc(200 * cos(i*pi/180 + angle*2*Pi/3)),
  34.       cy + trunc(200 * sin(i*pi/180 + angle*2*Pi/3))
  35.     )
  36.   end;
  37.   readln;
  38.   closegraph;
  39. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы