Построить конхоиду Никомеда - Pascal ABC

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

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

Построить кривую по параметрическому представлению (конхоида Никоме- да): x = a + l cost, y = a tg t + lsin t, t ∈ (−π/2; π/2) – правая ветвь, t ∈ (π/2; 3π/2) – левая ветвь, a > 0, l > 0. Рассмотреть случаи, когда l < a, l > a, l = a.

Решение задачи: «Построить конхоиду Никомеда»

textual
Листинг программы
uses graphABC;
var x0,y0,r,x1,y1:integer;
    a1,a2,a3,l1,l2,l3,fn,fk,t,xr,yr:real;
begin
fn:=-pi/2; {начальный угол}
fk:=3*pi/2;{конечный}
x0:=windowwidth div 2;
y0:=windowheight div 2;
line(0,y0,windowwidth,y0);
line(x0,0,x0,windowheight);
{графики при l<a,l=a,l>a}
a1:=3;l1:=1;
a2:=3;l2:=6;
a3:=5;l3:=5;
r:=20;{масштабирование}
t:=fn;
while t<=fk do
 begin
  if abs(cos(t))>0.001 then
   begin
    xr:=a1+l1*cos(t);
    yr:=a1*sin(t)/cos(t)+l1*sin(t);
    x1:=x0+round(r*xr);
    y1:=y0-round(r*yr);
    setpixel(x1,y1,clGreen);
    xr:=a2+l2*cos(t);
    yr:=a2*sin(t)/cos(t)+l2*sin(t);
    x1:=x0+round(r*xr);
    y1:=y0-round(r*yr);
    setpixel(x1,y1,clBlue);
    xr:=a3+l3*cos(t);
    yr:=a3*sin(t)/cos(t)+l3*sin(t);
    x1:=x0+round(r*xr);
    y1:=y0-round(r*yr);
    setpixel(x1,y1,clRed);
   end;
  t:=t+0.001;
 end;
setfontsize(11);
setfontcolor(clGreen);
textout(30,50,'l=1 a=3');
setfontcolor(clBlue);
textout(30,70,'l=6 a=3');
setfontcolor(clRed);
textout(30,90,'l=5 a=5');
end.

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

  1. Объявлены переменные: x0, y0, r, x1, y1, a1, a2, a3, l1, l2, l3, fn, fk, t, xr, yr (20).
  2. Задаются начальные значения: fn:=-pi/2; fk:=3*pi/2; x0:=windowwidth div 2; y0:=windowheight div 2 (4).
  3. Строятся оси координат: line(0,y0,windowwidth,y0); line(x0,0,x0,windowheight); (2 строки).
  4. Задаются параметры для графиков при l<a,l=a,l>a: a1:=3; l1:=1; a2:=3; l2:=6; a3:=5; l3:=5; r:=20; t:=fn (7 строк).
  5. В цикле while t<=fk выполняется отрисовка графиков: если abs(cos(t))>0.001, то вычисляются точки xr, yr для каждого значения l и рисуются точки на графике (см. ниже).
  6. По окончанию цикла выводится текст с параметрами l=1, a=3, l=6, a=3, l=5, a=5 (5 строк). Примечание: В коде используется функция cos(t), sin(t) и tan(t), которые определены в пространстве имен graphABC.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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