Построить график конхоиды Никомеда - 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.

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

  1. Подключается библиотека graph.
  2. Создается процедура Konh, которая принимает аргументы a, l, x, y, c - неизвестного назначения.
  3. Объявляются переменные fn, fk, t, xr, yr, r: real; x1, y1: integer;
  4. Задаются начальные значения для функции t: fn=0; fk=2*pi; r=60; t=fn;
  5. В цикле 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;
  6. Конец процедуры Konh.
  7. Объявляются переменные x0, y0: integer;
  8. Инициализируется график с координатами x0, y0,'';
  9. Вычисляются координаты максимума xmax, ymax;
  10. Вычисляются координаты осей x, y;
  11. Строятся линии с координатами x0, y0, xmax, ymax;
  12. Строится горизонтальная линия с координатами x0, y0;
  13. Строятся вертикальные линии с координатами x0, 0, x0, ymax;
  14. Выводится текст 'a=2 l=1' с помощью функции outtextXY(20,20);
  15. Выводится текст 'a=1 l=1' с помощью функции outtextXY(20,40);
  16. Выводится текст 'a=1 l=2' с помощью функции outtextXY(20,60);
  17. Завершается работа программы.

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


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

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

7   голосов , оценка 3.714 из 5