График, улитка Паскаля - 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.
Объяснение кода листинга программы
- Подключается библиотека graph.
- Создается процедура Ulitka, которая принимает 5 аргументов: xc (координаты x центра графика), yc (координаты y центра графика), a (ширина улитки), b (высота улитки) и c (цвет пикселя).
- В процедуре создается переменная t, которая инициализируется значением 0.
- Затем в цикле 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.
- После завершения цикла while, вызывается функция initgraph с аргументами xc, yc и пустая строка для инициализации графика.
- Затем вычисляются координаты xc и yc для следующего участка улитки.
- Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
- После завершения процедуры Ulitka, вызывается функция outtextXY с аргументами xc, 20 и 'a=40 b=100' для вывода текста на график.
- Затем вычисляются координаты xc и yc для следующего участка улитки.
- Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
- После завершения процедуры Ulitka, вызывается функция outtextXY с аргументами xc, 20 и 'a=40 b=60' для вывода текста на график.
- Затем вычисляются координаты xc и yc для следующего участка улитки.
- Вызывается процедура Ulitka с новыми значениями xc, yc, a, b и c.
- После завершения процедуры Ulitka, вызывается функция readln для чтения пользовательского ввода.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д