Wykres pola grawitacyjnego

Z wikipedii :
Newton uznał, że grawitacja jest siłą, z jaką oddziałują na siebie wszelkie ciała obdarzone masą. Prawo powszechnego ciążenia głosi, że:
Między dowolną parą ciał posiadających masy pojawia się siła przyciągająca, która działa na linii łączącej ich środki, a jej wartość rośnie z iloczynem ich mas i maleje z kwadratem odległości.

Myszą zmienisz położenie każdego ciała.
Matematycznie związek ten wyraża się wzorem:
(*) , gdzie ei jest wektorem jednostkowym (ee = 1) łączącym środki mas obu ciał.

Narysuję ilustrację pola grawitacyjnego dla trzech ciał o masach : m1, m2, m3 .
Zastosuję technikę "rysuję dywan".

1. wizualizacji dokonam przy pomocy gradientów :
void gradienty() 
{ 
  for(int i=0;i<55;i++) 
  { 
    paleta[i]=new Color(35+4*i,i,i); 
    paleta[55+i]=new Color(255-i,255-i,0); 
  } 
} 



2. Obliczę siłę przyciągania 2-ch ciał ( jeszcze bez uwzgl. mas )    3. ustalę kolor dla punktu pola grawitacyjnego
double F(pkt2d w0,pkt2d w)
{double ODL=Math.pow(w0.x-w.x,2)+Math.pow(w0.y-w.y,2); 

 if(w0.x!=w.x||w0.y!=w.y) ODL=Math.sqrt(ODL); 
   else ODL=1; 
 return(1.3/ODL); 
}

Color JakiKolor(pkt2d p) 
{int k_pola, double pole; 

  pole=m1*F(p,p1)+m2*F(p,p2)+m3*F(p,p3); 
  k_pola=(int)(sk*pole); 
  if(k_pola>109) k_pola=100; 
  return(paleta[k_pola]); 
}
4. Narysuję dywan
void rysuj(Graphics g 
{pkt2d p=new pkt2d(0,0); 
 Color kolor; 
 
 for(p.x=-max_x();p.x<max_x();p.x+=0.05) 
  for(p.y=-max_y()+0.05;p.y<max_y();p.y+=0.05) 
   { 
     kolor=JakiKolor(p); 
     lo28.punkt(g,p,kolor); 
    } 
}