Нарисовать силовые линии электрического поля - Pascal ABC

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

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

Добрый день! Скоро защита диплома и я как среднестатистический студент забивал , на это на протяжении года. Но настал день X. И по практической части мне нужно нарисовать СИЛОВЫЕ ЛИНИИ ЭЛЕКТРИЧЕСКОГО ПОЛЯ. Помогите пожалуйста. Картинку я прикреплю
Спойлер

Решение задачи: «Нарисовать силовые линии электрического поля»

textual
Листинг программы
uses graphABC;
var x1,x2,yc,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,r1,r2,r3,r4,i:integer;
    u,du:real;
begin
setwindowsize(400,400);
centerwindow;
yc:=200;
x1:=100;
x2:=300;
setpencolor(clSkyBlue);
setbrushcolor(clSkyBlue);
circle(x1,yc,15);
circle(x2,yc,15);
r1:=20;
r2:=70;
r3:=50;
r4:=60;
setpencolor(clBlack);
u:=0;
du:=pi/4;
for i:=1 to 8 do
 begin
  x3:=x1+round(r1*cos(u));
  y3:=yc-round(r1*sin(u));
  x4:=x1+round(r2*cos(u));
  y4:=yc-round(r2*sin(u));
  x5:=x1+round(r4*cos(u));
  y5:=yc-round(r4*sin(u));
  x6:=x1+round(r3*cos(u-pi/70));
  y6:=yc-round(r3*sin(u-pi/70));
  x7:=x1+round(r3*cos(u+pi/70));
  y7:=yc-round(r3*sin(u+pi/70));
  line(x3,y3,x4,y4);
  line(x5,y5,x6,y6);
  line(x5,y5,x7,y7);
  line(x6,y6,x7,y7);
  u:=u+du;
 end;
u:=0;
for i:=1 to 8 do
 begin
  x3:=x2+round(r1*cos(u));
  y3:=yc-round(r1*sin(u));
  x4:=x2+round(r2*cos(u));
  y4:=yc-round(r2*sin(u));
  line(x3,y3,x4,y4);
  x5:=x2+round(r3*cos(u));
  y5:=yc-round(r3*sin(u));
  x6:=x2+round(r4*cos(u-pi/80));
  y6:=yc-round(r4*sin(u-pi/80));
  x7:=x2+round(r4*cos(u+pi/80));
  y7:=yc-round(r4*sin(u+pi/80));
  line(x3,y3,x4,y4);
  line(x5,y5,x6,y6);
  line(x5,y5,x7,y7);
  line(x6,y6,x7,y7);
  u:=u+du;
 end;
setfontsize(12);
setfontstyle(fsBold);
textout(x1-4,yc-10,'+');
textout(x2-3,yc-10,'-');
end.

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

  1. Импортируется библиотека graphABC.
  2. Объявляются переменные x1, x2, yc, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, r1, r2, r3, r4, i, u, du.
  3. Устанавливается размер окна.
  4. Вычисляются координаты центров окружностей x1, yc, x2, yc, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7.
  5. Окружности рисуются с помощью функции circle.
  6. Устанавливаются цвета линий и текста.
  7. Задаются начальные значения для силовых линий.
  8. Задаются параметры для вычисления углов между линиями.
  9. Задаются координаты точек для линий.
  10. Рисуются линии с помощью функции line.
  11. Выводится текст с помощью функции textout.
  12. Завершается программа.

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

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