Формула связи между прямоугольными декартовыми координатами Xпр, Yпр и полярными p «ро»,»фи»:
Xпр=p*cos»фи» Yпр=p*sin «фи» и всё это объединено знаком системы.
p=(2/cos»фи»)+3 конхоида Никомеда.
{$R-}
uses crt,graph;
var x0,y0,d,gd,gm,i,x1,y1,fn,fk:integer;
r,a,l,f,x,xr,yr:real;
s:string;
begin
clrscr;
write('a=');readln(a);
write('l=');readln(l);
writeln('vvedite Fnach, Fkonech v gradusah:');
readln(fn,fk);
gd:=0;
initgraph(gd,gm,'');
Setbkcolor(1);
x0:=getmaxX div 2;
y0:=getmaxY div 2;
{КООРДИНАТНАЯ СЕТКА}
d:=round((y0-20)/l);{шаг по оси радиуса в пикселях}
for i:=1 to round(l) do
begin
{рисуем окружности}
circle(x0,y0,i*d);
{пишем шкалу}
str(i,s);
outtextXY(x0+i*d+3,y0+10,s);
end;
f:=30;{шаг по кругу=30 град}
for i:=1 to 12 do{делим на 12 частей}
begin
{рисуем радиусы пунктиром}
Setlinestyle(1,0,1);
x1:=x0+round(y0*cos(i*f*pi/180));
y1:=y0-round(y0*sin(i*f*pi/180));
line(x0,y0,x1,y1);
{пишем подписи}
str(i*30,s);
if y1>=y0 then outtextXY(x1+10,y1-10,s)
else outtextXY(x1,y1+10,s)
end;
outtextXY(x0+y0-8,y0-10,'0,');
{рисуем осевые линии сплошной линией}
Setlinestyle(0,0,1);
line(10,y0,getmaxX-10,y0);
line(x0,0,x0,getmaxY);
outtextXY(x0+5,y0+10,'0');
outtextXY(getmaxX-15,y0+10,'L');
{ГРАФИК}
x:=fn;
while x<=fk do
begin
if cos(x)<>0 then
begin
r:=a/cos(x)+l;
xr:=r*cos(x);
yr:=r*sin(x);
x1:=x0+round((y0-20)*xr/l-a*d);
y1:=y0-round((y0-20)*yr/l);
putpixel(x1,y1,14);
end;
x:=x+0.01;
end;
readln;
closegraph
end.