Graphic PIZiadas

Graphic PIZiadas

Meine Welt ist in..

Rekursive Fractals: Koch Curve [JAVA]

curva-de-koch-triangulo-completo-150Wir haben ein erstes Programm namens gesehen “DrawWorld” führten wir die JAVA-Programmierung orientiert Grafiken. Dieses Programmiermodul hat uns geholfen, einen ersten sehen rekursive fraktale: Das Dreieck Sierpisnki.

Lassen Sie uns diese grundlegende Programm zu ändern, um eine neue grundlegende rekursive Fraktale generieren: Die curva de Kuch.

(Siehe und Erzeugen eines rekursiven fraktale)

Es ist ein Fraktal, das rekursiv von einer geraden Linie gebaut wird. Die Seiten sind in drei gleiche Teile geteilt und das zentrale Segment wird durch Ausbilden von zwei gleich geändert 60 Grad mit dem oben und jedes.

Die Curva de Koch, auch bekannt als Schneeflocke ist ein Fraktal, das durch unterschiedliche Verfahren als sogenannte erhalten werden IFS oder Funktion Systeme iteriert (deterministisch in die), regelbasierte Systeme, usw..

Die rekursiven Algorithmus hat auch die Tugend der repräsentiert ein Konzept eng mit Fraktalen verbunden: Unendlichkeit. Das Wesen der Rekursion eine sehr einfache Form der Kurve sich beschreiben. Ein Universum, das andere und dieses enthält wiederum kopieren Sie die Muster auf einem kleineren Maßstab (so contractive) ein endlos sich wiederholende Sequenz.

Koch-Kurve gehört zu den Selbst-ähnliche fraktale[1], werden das Verfahren zum Erhalten des deterministischen.

curva-de-koch-0

Initiator

curva-de-koch-1

Erste Iteration

Fractal Dimension

Die Dimension ein Objekt platziert oder topologische Konzept, die Objekte klassifiziert metrische Räume. Die intuitive Vorstellung von ganzen Dimensionen Bereiche Zusammenstößen mit der sogenannten fraktalen Dimensionen, unter Istwerte.

Die Peano Hündin ist eine Kurve, in der Lage Auffüllen. Sie haben daher zwei Dimensionen?, fragt man sich,.

Ist mit einer fraktalen Dimension von Rauheit verbunden, die Fragmentierung, davon, so dass eine größere Dimension präsentieren eine raue oder gezackte. In jedem Fall gibt Auskunft über seine Komplexität charakterisieren.

Koch-Kurve ein Verhältnis s = 1/3, bei n = 4, so seine fraktale Dimension ist:

D = ln4/ln3 ~ 1.269

Wenn jeder dieser neuen Segmente werden wieder geteilt wird rekursiv Hoch Kurve

curva-de-koch-2

curva koch Parameter n = 2

.

curva de koch para n=3

curva de koch para n = 3

curva de koch para n=4

curva de koch para n = 4

Wenn wir drei Linien, anstelle eines Initiators, gleichseitigen Dreieck klassische Schneeflocke Form erscheint, Name der aus dieser Konfiguration der fraktalen bekannt.

curva-de-koch-triangulo

curva de koch : Schneeflocke

Generator-Algorithmus

Wir haben eine Funktion definiert “paintRecursivo” (Ich rief aus dem Verfahren “malen”) Ich verbrachte die Punkte der Linie oder Linien Dreieck, und die Rekursion. Die Funktion berechnet die Ecken der neuen Segmente, Malerei der Figur und nennt sich wieder die Verringerung der Rekursion.

Deshalb, jeder Funktionsaufruf Rekursion Wert reduziert wird, so dass, wenn es Null ist beendet Durchführung Rekursion.

importieren java.applet.Applet;
importieren java.awt.Graphics;
/**
* @ Autor José Juan Aliaga
*/
Öffentlichkeit Klasse MainApp erstreckt Applet {
 verdoppeln xp1 = 300;
 verdoppeln YP1 = 300;
 verdoppeln xp2 = 10;
 verdoppeln YP2 = 300;
 verdoppeln sin60 = Math.sin(3.14/3.);
 int nivel_de_recursividad = 6;

 Öffentlichkeit MainApp() { }

 Öffentlichkeit statische ungültig Haupt(String[] args) { }

 public void malen(Graphics g){
   paintRecursivo(g,nivel_de_recursividad,xp1, YP1, xp2, YP2);
 }

 private void paintRecursivo(Graphics g, int i, verdoppeln XP12, verdoppeln yp12, verdoppeln Xp22, verdoppeln yp22 ) {
 verdoppeln dx =(Xp22-XP12)/3.;
 verdoppeln zwei =(yp22-yp12)/3.;
 verdoppeln dx2dy * sin60 * x  3 = XP12;
 verdoppeln yp12 3 * y = dy / dx * 2   sin60;
 wenn(i<= 0){
      g.drawLine((int)XP12,(int)yp12,(int)Xp22,(int)yp22);
 }
 sonst{
     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

Course JAVA