Эпитрохоида - 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.
Объяснение кода листинга программы
- Объявлены переменные c, x, y, r1, r2, m, h, t, ms типа integer и real.
- Заданы размеры окна - 500 на 500 пикселей.
- Окно центрировано.
- Значение переменной c равно 250.
- Значение переменной r1 равно 1.
- Значение переменной r2 равно 0.2.
- Значение переменной m равно 0.2 (r2/r1).
- Значение переменной h равно 0.3.
- Значение переменной ms равно (c-50)/(r1+2*r2).
- Установлена толщина пера 2 пикселя.
- Установлен цвет пера зеленый (clGreen).
- Нарисован круг с центром в точке (c,c) радиусом r1*ms.
- Установлен цвет пера красный (clRed).
- Начальное значение переменной t равно 0.
- Запущен цикл, который выполняется 12 раз (от 0 до 12*pi).
- Внутри цикла рассчитываются значения переменных x и y.
- Если t=0, то выполняется команда moveto(x,y), иначе выполняется команда lineto(x,y).
- Значение переменной t увеличивается на 0.01.
- Цикл завершается.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д