График, улитка Паскаля - Pascal

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

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

помогите, пожалуйста, построить кривую, заданную в полярных координатах. Пересчет в декартовы координаты выполняется по формулам: x=r*cos(f); y=r*sin(f) Нарисовать оси координат и асимптоты, если они есть. Улитка Паскаля: r=a*cos(f)+b, a,b>0 Рассмотреть случаи: b>=2a, a<b<2a, a>b;

Решение задачи: «График, улитка Паскаля»

textual
Листинг программы
uses graph;
procedure Ulitka(xc,yc,a,b,c:integer);
var t,r:real;
    x,y:integer;
begin
t:=0;
while t<=2*pi do
 begin
  r:=a*cos(t)+b;
  x:=round(xc+r*cos(t));
  y:=round(yc-r*sin(t));
  putpixel(x,y,c);
  t:=t+0.001;
 end;
end;
var a,b,xc,yc:integer;
begin
xc:=0;
initgraph(xc,yc,'');
xc:=50;
yc:=getmaxY div 2;
Ulitka(xc,yc,20,50,12);
outtextXY(xc,20,'a=40 b=100');
xc:=xc+getmaxx div 3;
Ulitka(xc,yc,40,60,14);
outtextXY(xc,20,'a=40 b=60');
xc:=xc+getmaxx div 3;
Ulitka(xc,yc,80,40,13);
outtextXY(xc,20,'a=80 b=40');
readln
end.

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

  1. Подключается библиотека graph.
  2. Создается процедура Ulitka, которая принимает 5 аргументов: xc (координаты x центра графика), yc (координаты y центра графика), a (ширина улитки), b (высота улитки) и c (цвет пикселя).
  3. В процедуре создается переменная t, которая инициализируется значением 0.
  4. Затем в цикле while t<=2*pi (где pi - это число Пи) выполняются следующие действия:
    • Вычисляется значение r как a*cos(t) + b.
    • Вычисляются значения x и y как round(xc+rcos(t)) и round(yc-rsin(t)) соответственно.
    • Вызывается функция putpixel с аргументами x, y и c для рисования пикселя на графике.
    • Значение t увеличивается на 0.001.
  5. После завершения цикла while, вызывается функция initgraph с аргументами xc, yc и пустая строка для инициализации графика.
  6. Затем вычисляются координаты xc и yc для следующего участка улитки.
  7. Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
  8. После завершения процедуры Ulitka, вызывается функция outtextXY с аргументами xc, 20 и 'a=40 b=100' для вывода текста на график.
  9. Затем вычисляются координаты xc и yc для следующего участка улитки.
  10. Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
  11. После завершения процедуры Ulitka, вызывается функция outtextXY с аргументами xc, 20 и 'a=40 b=60' для вывода текста на график.
  12. Затем вычисляются координаты xc и yc для следующего участка улитки.
  13. Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
  14. После завершения процедуры Ulitka, вызывается функция readln для чтения пользовательского ввода.
  15. Программа завершается.

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


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

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

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