Построить на экране полярную систему координат и в ней график функции.Фон экрана синий,полярная ось,масштабные отметки и числовые обозначения должны иметь белый цвет, график функции-жёлтый. Начальные и конечное значение «фи» ,значение переменных a,l,c должны быть введены пользователем с помощью клавиатуры — Pascal(Паскаль)

Формула связи между прямоугольными декартовыми координатами 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.

Leave a Comment

4 + 6 =