Построить график конхоиды Никомеда - Turbo Pascal
Формулировка задачи:
Помогите построить график конхоиды Никомеда:
уравнения: x=a+l*cos(t), y=a*tg(t)+l*sin(t)
t=(-pi/2;pi/2) --для правой ветви.
t=(pi/2;3*pi/2) -- для левой ветви.
a>0, l>0.
Рассмотреть случаи, когда: l<a, l>a, l=a.
Заранее спасибо.
Решение задачи: «Построить график конхоиды Никомеда»
textual
Листинг программы
uses graph; procedure Konh(a,l:real;x,y,c:integer); var fn,fk,t,xr,yr,r:real; x1,y1:integer; begin fn:=0; fk:=2*pi; r:=60; t:=fn; while t<=fk do begin if abs(cos(t))>0.001 then begin xr:=a+l*cos(t); yr:=a*sin(t)/cos(t)+l*sin(t); x1:=x+round(r*xr); y1:=y-round(r*yr); putpixel(x1,y1,c); end; t:=t+0.001; end; end; var x0,y0:integer; begin initgraph(x0,y0,''); x0:=getmaxX div 2; y0:=getmaxY div 2; line(0,y0,getmaxX,y0); line(x0,0,x0,getmaxY); {ГРАФИКИ} Konh(2,1,x0,y0,10); Konh(1,1,x0,y0,11); Konh(1,2,x0,y0,12); setcolor(10); outtextXY(20,20,'a=2 l=1'); setcolor(11); outtextXY(20,40,'a=1 l=1'); setcolor(12); outtextXY(20,60,'a=1 l=2'); readln end.
Объяснение кода листинга программы
- Подключается библиотека graph.
- Создается процедура Konh, которая принимает аргументы a, l, x, y, c - неизвестного назначения.
- Объявляются переменные fn, fk, t, xr, yr, r: real; x1, y1: integer;
- Задаются начальные значения для функции t: fn=0; fk=2*pi; r=60; t=fn;
- В цикле while t<=fk do — Если abs(cos(t))>0.001 то — Вычисляются координаты xr, yr по формуле xr=a+lcos(t); yr=asin(t)/cos(t)+lsin(t); — Вычисляются координаты x1, y1 по формуле x1:=x+round(rxr); y1:=y-round(r*yr); — Выводится пиксель на график с координатами x1, y1, c; — t=t+0.001; — t=t+0.001;
- Конец процедуры Konh.
- Объявляются переменные x0, y0: integer;
- Инициализируется график с координатами x0, y0,'';
- Вычисляются координаты максимума xmax, ymax;
- Вычисляются координаты осей x, y;
- Строятся линии с координатами x0, y0, xmax, ymax;
- Строится горизонтальная линия с координатами x0, y0;
- Строятся вертикальные линии с координатами x0, 0, x0, ymax;
- Выводится текст 'a=2 l=1' с помощью функции outtextXY(20,20);
- Выводится текст 'a=1 l=1' с помощью функции outtextXY(20,40);
- Выводится текст 'a=1 l=2' с помощью функции outtextXY(20,60);
- Завершается работа программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д