Помощь - Поиск - Пользователи - Календарь
Полная версия: Спираль Ферма и спираль Галилея.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Sensitive
Нужно построить одновременно на экране:
спираль Архимеда r=a*phi для phi>0,
спираль Ферма r=a*sqrt(phi) для r>0,
спираль Галилея r=a*sqr(phi)-d для phi>0 и d>0.
Помогите плиз,вообще не знаю как их построить.
Вот для спирали Архимеда получила что-то такое:
uses graph;
Procedure put_polar(f,r:real);
begin
putpixel((getmaxx div 4)+trunc(r*cos(f)),
(getmaxy div 4)-trunc(r*sin(f)),white);
end;

const a=5;
var f,r:real;
begin
init;
f:=0;
while f<=8*pi do begin
r:=a*f;
put_polar(f,r);
f:=f+0.001;
end;
readln;
closegraph;
end.
volvo
Так, например:
uses graph;

const
d: real = 2;
a = 5;

type
f_type = function(f: real): real;

function f_arch(f: real): real; far;
begin
f_arch := a * f;
end;
function f_galil(f: real): real; far;
begin
f_ferma := a * sqr(f) - d;
end;

Procedure put_polar(f:real; color: integer; func: f_type);
begin
putpixel((getmaxx div 2)+trunc(func(f)*cos(f)),
(getmaxy div 2)-trunc(func(f)*sin(f)), color);
end;

var
f, r: real;
gd, gm: smallint;

begin
initgraph(gd, gm, '');
f := 0;
while f <= 8*pi do begin
put_polar(f, lightred, f_arch);
put_polar(f, lightgreen, f_galil);
f:=f+0.001;
end;
readln;
closegraph;
end.
Красная - спираль Архимеда, зеленая - Галилея... Спираль Ферма делается по аналогии...
Sensitive
Спасибо огромное за помощь.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.