Okay the circular pond has North and East coordinates at the radius point of
10 , 10 and the radius is 10 units . The agent is at North and East
coordinates of 20 , 10 and moves clockwise in 1-degree steps. The rabbit at
the center of the pond moves away from the agent at each step on a line
between the agent and the rabbit. And the rabbit moves 1/4 the distance that
the agent moves.
The rabbit gets out at North and East coordinates of 1.3437 , 4.9694 when
the agent is at an azimuth of 232 degrees on the circle edge. But the rabbit
is out at an azimuth of 210 degrees or so. In other words the rabbit doubled
back while the agent kept going. Before the rabbit doubled back it looks
like a slow outward spiral but I will write a ScratchPlot file later.
Of course this is one systematic method with no answer for what the agent
does when the rabbit is within one unit of shore and near the agent.
Here is the KBH code:
Var
ads, nag, eag, rba, rds, sec, rbn, rbe, nd, ed, dgr, dst: double;
flg: integer;
Procedure D;
Begin
If (flg = 1) Then
Begin
{Procedure E}
rba:= rba + Pi;
Exit;
End;
rba:= rba + (Pi * 2);
{The structure of procedures D, E, & F are from the KBH Survey Progam for
the HP35S}
End;
Procedure F;
Begin
If (flg = 1) Then Exit;
rba:= rba + Pi;
End;
begin
{KBH Code}
flg:= 0;
sec:= 1 / 3600;
rbn:= 10;
rbe:= 10;
rds:= 0;
dgr:= 1;
While (dgr < 233) Do
Begin
ads:= (dgr * Pi) / 180;
nag:= 10 + Cos(ads);
eag:= 10 + Sin(ads);
nd:= rbn - nag;
If (nd = 0) Then nd:= 0.000000000001;
ed:= rbe - eag;
If (ed >= 0) Then flg:= 1;
rba:= ArcTan(ed / nd);
If (rba < 0.000000000001) Then D Else F;
rbn:= rbn + (Cos(rba) * 0.043633231);
rbe:= rbe + (Sin(rba) * 0.043633231);
dst:= Sqrt(Sqr(10 - rbn) + Sqr(10 - rbe));
WriteLn(rbn:15:4, rbe:15:4, dgr:15:4, dst:15:4);
dgr:= dgr + 1;
End;
ReadLn;
end.