Графика: нарисовать связку из трех воздушных шариков - Pascal ABC

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

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

Нарисовать связку из трех воздушных шариков.

Решение задачи: «Графика: нарисовать связку из трех воздушных шариков»

textual
Листинг программы
uses GraphABC;
//Заполненный повернутый эллипс:
procedure myEllipse(a,b,x0,y0,cl:integer;fi:real);
var x1,y1,x,y,i,n: integer;
    x2,y2,t:real;
begin
n:=500;
SetPenColor(cl);
fi:=pi*fi/180; //угол поворота
x:=x0;
y:=y0;
for i:=1 to n do
 begin
  t:=2*pi*i/ n;
  // уравнение эллипса:
  x2:=a*cos(t);
  y2:=b*sin(t);
  // преобразование координат (поворот эллипса fi на градусов):
  x1:=x0+round(x2*cos(fi)-y2*sin(fi));
  y1:=y0-round(x2*sin(fi)+y2*cos(fi));
  if i=1 then MoveTo(x1,y1)
  else LineTo(x1,y1);
  x:=x1;
  y:=y1
 end;
FloodFill(x0,y0,cl)
end;
 
var x,y:integer;
begin
setwindowsize(400,400);
x:=windowwidth div 2;
y:=windowheight div 2-70;
setpencolor(clRed);
setbrushcolor(clRed);
Ellipse(x-40,y-70,x+40,y+70);
myEllipse(70,40,x-70,y+55,clSkyBlue,125);
myEllipse(70,40,x+70,y+55,clLime,55);
setpencolor(clBlack);
setpenwidth(2);
line(x,y+150,x,y+70);
line(x,y+150,x-25,y+110);
line(x,y+150,x+25,y+110);
setpencolor(clBrown);
setbrushcolor(clBrown);
rectangle(x-5,y+150,x+5,y+200);
end.

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

  1. Подключается библиотека GraphABC.
  2. Создается процедура myEllipse, которая рисует эллипс с заданными параметрами.
  3. Переменные n, x0, y0, cl и fi инициализируются значениями 500, 0, 0, красный и 125 соответственно.
  4. Устанавливается цвет кисти в красный.
  5. Задаются начальные координаты для рисования эллипса (x1, y1).
  6. В цикле for происходит рисование эллипса с использованием x1, y1 как начальных координат.
  7. После завершения цикла, происходит заливка области вокруг точки (x0, y0) указанным цветом.
  8. Устанавливается размер кисти в 2.
  9. Рисуется линия между точками (x, y+150), (x-25, y+110) и (x+25, y+110).
  10. Рисуется прямоугольник с координатами (x-5, y+150), (x+5, y+200).
  11. Задается цвет кисти в коричневый.
  12. Программа завершается.

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

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