Построить кривую по ее уравнениям в полярных координатах - Free Pascal
Формулировка задачи:
здравствуйте, помогите пожалуйста написать программу по заданию:
построить кривую по ее уравнениям в полярных координатах (полярные координаты p,f точки М на плоскости - это расстояние р=ОМ от фиксированной точки О до точки М и угол f=РОМ между ОМ и полярной осью (полупрямой) ОР). овалы Кассини
Решение задачи: «Построить кривую по ее уравнениям в полярных координатах»
textual
Листинг программы
uses wincrt,graph; procedure kassini(x0,y0,cv:integer;a,c:real); var p,f,t,s:real; begin f:=0; while f<=2*pi do begin t:=c*c*c*c*sqr(cos(f))+a*a*a*a-c*c*c*c; if t>=0 then s:=c*c*cos(2*f)+sqrt(t); if s>=0 then p:=sqrt(s); putpixel(x0+round(100*p*cos(f)),y0-round(100*p*sin(f)),cv); f:=f+0.001; end; end; var x0,y0:integer; begin x0:=0; initgraph(x0,y0,''); x0:=getmaxX div 2; y0:=getmaxY div 2; kassini(x0,y0,12,1.3,1); kassini(x0,y0,9,1.6,1); kassini(x0,y0,10,2.3,1); readkey end.
Объяснение кода листинга программы
- Объявлены переменные: — p, f, t, s (реальные) — x0, y0 (целые)
- Вызов функции kassini с аргументами: — x0 = 0 — y0 = 0 — cv = 12 — a = 1.3 — c = 1
- В функции kassini происходит следующее: — Переменная f инициализируется значением 0 — Запускается цикл while, который выполняется до тех пор, пока значение f не станет равным 2*pi — Внутри цикла вычисляются значения t и s — Если значение t больше или равно нулю, то вычисляется значение s — Если значение s больше или равно нулю, то вычисляется значение p — Вызывается функция putpixel для отображения точки на графике — Значение f увеличивается на 0.001
- В основной части программы после вызова функции kassini: — x0 = полученное значение x0 — y0 = полученное значение y0 — Вызывается функция initgraph для инициализации графического режима — Вычисляется значение x0 и y0, которые являются центром графического окна — Вызывается функция readkey для ожидания нажатия клавиши
- В конце программы вызывается функция readkey для ожидания нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д