Atraktor Henona nr 3
Janusz Sobieraj - 28 LO

Atraktor 3


Oto wzór dla "naszego bohatera":
xn+1 = xn·cos(a) - (yn - xn2)·sin(a)
yn+1 = xn·sin(a) + (yn - xn2)·cos(a)
Wybiorę punkt "startowy" i wielokrotnie zastosuję przekształcenie :
P(x,y)=(x·cos(a) -(y-x2)·sin(a) , x·sin(a) -(y-x2)·cos(a))
Procedura rysująca jest równie prosta jak w poprzednich dwu przypadkach.

Wzór sugeruje, że na kształt ma wpływ współczynnik a, zaś praktyka pokazuje, że
pkt2d P(pkt2d p) 
{double xp=p.x; 

  p.x=xp*Math.cos(a)-(p.y-xp*xp)*Math.sin(a); 
  p.y=xp*Math.sin(a)+(p.y-xp*xp)*Math.cos(a); 
  return(p); 
} 
//-------------------------------------------
void klatka(Graphics g) 
{ 
  for(int i=0;i<1000;i++) 
  { 
    w=P(w); 
    lo28.punkt(g,lo28.p2d(sk*w.x,sk*w.y)); 
  } 
}
wybór punktu "starowego" również jest nie bez znaczenia. Istotnie, punkt startowy wybieramy z obszaru x:<-1 ; 1> oraz y:<-1 ; 1>
Zastosowałem dość duże powiększenie tego obszaru (można zmieniać w zakresie 1-12)
Aplet obok pozwala ci obserwować wygodnie punkty atraktora. Punkt wskazany myszą będzie nowym "punktem startowym". Rysuje się zawsze w kolorze czerwonym (aktualna skala) i dodatkowo na niebiesko (w skali 1:1).
Jeśli spokojnie znajdziesz inne niż proponowane wartości atraktor zaprezentuje swoje inne piękne formy.