Эпитрохоида - Pascal ABC

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

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

ЧТО ТО ТИПО ЭТОЙ ТОЛЬКО В PascalABC ПОМОГИТЕ ПОСТРОИТЬ ЕСЛИ НЕ СЛОЖНО

Решение задачи: «Эпитрохоида»

textual
Листинг программы
uses graphABC;
var c,x,y:integer;
    r1,r2,m,h,t,ms:real;
begin
setwindowsize(500,500);
centerwindow;
c:=250;
r1:=1;
r2:=0.2;
m:=r2/r1;//m=0.2
h:=0.3;
ms:=(c-50)/(r1+2*r2);
setpenwidth(2);
setpencolor(clGreen);
circle(c,c,round(r1*ms));
setpencolor(clRed);
t:=0;
while t<=12*pi do
 begin
  x:=c+round((r1*(m+1)*cos(m*t)-h*cos((m+1)*t))*ms);
  y:=c-round((r1*(m+1)*sin(m*t)-h*sin((m+1)*t))*ms);
  if t=0 then moveto(x,y) else lineto(x,y);
  t:=t+0.01;
 end;
end.

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

  1. Объявлены переменные c, x, y, r1, r2, m, h, t, ms типа integer и real.
  2. Заданы размеры окна - 500 на 500 пикселей.
  3. Окно центрировано.
  4. Значение переменной c равно 250.
  5. Значение переменной r1 равно 1.
  6. Значение переменной r2 равно 0.2.
  7. Значение переменной m равно 0.2 (r2/r1).
  8. Значение переменной h равно 0.3.
  9. Значение переменной ms равно (c-50)/(r1+2*r2).
  10. Установлена толщина пера 2 пикселя.
  11. Установлен цвет пера зеленый (clGreen).
  12. Нарисован круг с центром в точке (c,c) радиусом r1*ms.
  13. Установлен цвет пера красный (clRed).
  14. Начальное значение переменной t равно 0.
  15. Запущен цикл, который выполняется 12 раз (от 0 до 12*pi).
  16. Внутри цикла рассчитываются значения переменных x и y.
  17. Если t=0, то выполняется команда moveto(x,y), иначе выполняется команда lineto(x,y).
  18. Значение переменной t увеличивается на 0.01.
  19. Цикл завершается.
  20. Конец программы.

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


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

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

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