{$mode objfpc} {$H+}
unit Funzione_evolvente;
interface
uses grafica;
type evolvente=class
private
raggio:double;
procedure setRaggio(r:double);
public
constructor crea(r:double);
function calcola(angolo:double):tpuntoxy;
property alfa:double read raggio write setRaggio;
end;
implementation
constructor evolvente.crea(r:double);
begin
setRaggio(r);
end;
function evolvente.calcola(angolo:double):tpuntoxy;
var esito,trig:tpuntoxy;
begin
trig.px:=cos(angolo);
trig.py:=sin(angolo);
esito.px:=raggio * (trig.px + angolo * trig.py);
esito.py:=raggio * (trig.py - angolo * trig.px);
calcola:=esito;
end;
procedure evolvente.setRaggio(r:double);
begin
raggio:=abs(r);
if raggio < 1e-18 then
raggio:=1.0;
end;
begin
end.