Krzywa pogoni - cel ruchomy

Obok aplet realizuje trzy rodzaje pościgu.
  1. wybierz rodzaj ucieczki zająca - ślad niebieski


  2. powtórzysz pościg wybierając myszą nową pozycję startową psa - kliknij w aplet nad szarą, dolną linią

W przypadku ucieczki zająca typu "bilard" losowana jest prędkość zająca - w dolnej części apletu wypisywany jest procentowy stosunek prędkości obu uczestników. Możliwy jest przypadek nieco większej prędkości zająca niż goniącego psa ( 101%-102%). Pogoń trwa wtedy dłużej, ale również kończy się sukcesem !

Z programistycznego punktu widzenia różnica pomiędzy procedurą realizującą pościg do punktu stałego i obecny, jest taka, że instrukcję:

fi=Math.atan((z.y-p.y)/(z.x-p.x));
należy umieścić w pętli animacyjnej. Pies w kazdym kroku animacji musi zweryfikować kierunek swojejego pościgu. W pętli powinniśmy oczywiście zmieniać pozycję zająca. Najprostsza wersja takiej procedury może wygladać tak:

public void po_prostej(Graphics g)
{ double fi;
  vp=0.0011;
  vz=0.00067;

  do 
   {
    punkt(g,z,Color.blue);	
    fi=Math.atan((z.y-p.y)/(z.x-p.x));
    p.x=p.x+vp*Math.cos(fi);
    p.y=p.y+vp*Math.sin(fi);
    punkt(g,p,Color.orange);
    z.x+=vz;
   }
  while(dl(p,z)>Math.abs(vp));
}