PIZiadas graphiques

PIZiadas graphiques

Mon monde est po.

Fractales récursives: Koch Curve [JAVA]

curva-de-koch-triangulo-completo-150Nous avons vu un premier programme appelé “DrawWorld” nous avons introduit les graphiques de programmation Java orientés. Programmation Ce module nous a permis de voir une première récursive fractale: Le triangle Sierpisnki.

Nous allons changer ce programme de base pour générer une nouvelle base récursive fractale: Le curva de Kuch.

(Voir et génération d'une fractale récursive)

Il s'agit d'une fractale qui est construit de manière récursive à partir d'une ligne droite. Ses côtés sont divisés en trois parties égales et le segment central est changé par deux égal formation 60 degrés entre la précédente et si.

Le curva de Koch, également connue sous le nom de flocon de neige est une fractale qui peut être obtenu par différentes méthodes comme soi-disant IFS ou Systèmes de fonction itératif (déterministe à l'), Les systèmes à base de règles, etc.

Le algorithme récursif a également l'avantage de représenter un concept étroitement lié avec les fractales: infini. L'essence de la récursivité pour décrire une forme très simple de la courbe elle-même. Un univers qui contient un autre et ce, à son tour copier le modèle sur une plus petite échelle (afin de contraction) une séquence qui se répète sans fin.

Courbe de Koch appartient à l' autosimilaire fractale[1], la méthode d'obtention du déterministe.

curva-de-koch-0

Initiateur

curva-de-koch-1

Première itération

Dimension fractale

Le dimension un objet est placé ou un concept topologique qui classe les objets espaces métriques. La notion intuitive de l'ensemble des dimensions des espaces affrontements avec les dimensions que l'on appelle fractales, prenant des valeurs réelles.

Le Courbe de Peano est une courbe capable de remplir. Vous avez donc deux dimensions?, on peut se demander.

Est associée à une dimension fractale de la rugosité, la fragmentation, celui-ci, de sorte qu'une plus grande dimension présente une plus rugueuse ou déchiquetée. En tout cas, donne des informations sur sa complexité caractérisant.

La courbe de Koch a une relation s = 1/3, avec n = 4, craignent que leurs dimensions fractales sont:

D = ln4/ln3 ~ 1.269

Si chacun de ces nouveaux segments sont à nouveau divisés de manière récursive courbe obtenue Hoch

curva-de-koch-2

curva de koch para n = 2

.

curva de koch para n=3

curva Koch para n = 3

curva de koch para n=4

curva les paramètres Koch n = 4

Si nous utilisons trois lignes, au lieu d'une seule comme un initiateur, forme en forme de triangle équilatéral semble classique flocon de neige, nom avec lequel cette configuration est connu fractal.

curva-de-koch-triangulo

curva de koch : flocon de neige

algorithme du générateur

Nous avons défini une fonction “paintRecursivo” (J'ai appelé à partir de la méthode “peindre”) passé les points de la ligne ou des lignes du triangle, et la récursion. La fonction calcule les sommets des nouveaux segments, dresse la figure et appelle lui-même réduire encore la récursion.

Donc, à chaque appel de la fonction de réduire la valeur de récursion, de sorte que quand il est zéro termine d'récursion.

importer java.applet.Applet;
importer java.awt.Graphics;
/**
* @ Auteur José Juan Aliaga
*/
publique classe MainApp s'étend Applet {
 doubler XP1 = 300;
 doubler YP1 = 300;
 doubler XP2 = 10;
 doubler YP2 = 300;
 doubler sin60 = Math.sin(3.14/3.);
 int nivel_de_recursividad = 6;

 publique MainApp() { }

 publique statique annulera principale(Chaîne[] args) { }

 public void peindre(Graphics g){
   paintRecursivo(g,nivel_de_recursividad,XP1, YP1, XP2, YP2);
 }

 private void paintRecursivo(Graphics g, int i, doubler XP12, doubler yp12, doubler Xp22, doubler yp22 ) {
 doubler dx =(Xp22-XP12)/3.;
 doubler deux =(yp22-yp12)/3.;
 doubler xx = XP12  3 * dx2dy * sin60;
 doubler yy = yp12  3 * dy / dx 2   * sin60;
 si(i<= 0){
      g.drawLine((int)XP12,(int)yp12,(int)Xp22,(int)yp22);
 }
 autre{
     paintRecursivo(g,i-1, XP12, yp12, XP12   dx,yp12 dy);
     paintRecursivo(g,i-1, XP12   dx,yp12 dy,xx,yy);
     paintRecursivo(g,i-1, xx,yy,Xp22-dx,yp22-dy);
     paintRecursivo(g,i-1, Xp22-dx,yp22-dy,Xp22, yp22);
 }
} }
JAVA

Cours JAVA