רעקורסיווע פראַקטאַלס: קורוואַ דע קאָטש [דזשאַוואַ]

curva-de-koch-triangulo-completo-150מיר האָבן געזען אַ ערשטער פּראָגראַם גערופן “דראַוווואָרלד” מיר באַקענענ דער דזשאַוואַ פּראָגראַממינג אָריענטיד גראַפיקס. Este módulo de programación nos ha servido para ver un primer fractal recursivo: די דרייַעק סיערפּיסנקי.

זאל ס טוישן דעם יקערדיק פּראָגראַם צו דזשענערייט אַ נייַ יקערדיק רעקורסיווע פראַקטאַל: די curva de Kuch.

(זען און דזשענערייטינג אַ רעקורסיווע פראַקטאַל)

Es un fractal que se construye de forma recursiva a partir de una línea recta. Sus lados se dividen en tres partes iguales y el segmento central se cambia por dos iguales que forman 60 grados con los anteriores y entre si.

די curva de Koch, también conocida como copo de nieve es un fractal que puede obtenerse mediante diferentes procedimientos como los denominados IFS די sistemas de funciones iteradas (deterministas o no), sistemas basados en reglas, אאז"ו ו.

די algoritmo recursivo goza de la virtud de representar además un concepto muy asociado a los fractales: el infinito. La esencia de la recursividad permite describir de una forma muy simple la de la propia curva. Un universo que contiene a otro y este a su vez copia el patrón a menor escala (de forma contractiva) en una secuencia que se repite infinitamente.

La curva de Koch pertenece al grupo de los fractales autosimilares[1], siendo el método de obtención del tipo determinista.

curva-de-koch-0

Iniciador

curva-de-koch-1

Primera iteración

Dimensión Fractal

די dimensión de un objeto es un concepto topológico que sitúa o clasifica a los objetos en espacios métricos. La noción intuitiva de espacios con dimensiones enteras choca con las denominadas dimensiones fractales, que toman valores reales.

די curva de Peano es una curva capaz de llenar el plano. ¿Tiene por lo tanto dos dimensiones?, cabe preguntarse.

Se asocia la dimensión de un fractal con la aspereza, o fragmentación, דערפון, de manera que una dimensión mayor presentará un aspecto más rugoso o dentado. En cualquier caso da información caracterizándolo acerca de su complejidad.

La curva de Koch tiene una relación s=1/3, מיט n = 4, por lo que su dimensión fractal es:

D=ln4/ln3 ~ 1.269

Si cada uno de estos nuevos segmentos se dividen de nuevo de forma recursiva se obtiene la curva de Hoch

curva-de-koch-2

curva de koch para 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

Si usamos tres líneas, en lugar de una como iniciador, en forma de triángulo equilátero aparecerá la clásica forma de copo de nieve, nombre con el que se conoce a esta configuración del fractal.

curva-de-koch-triangulo

curva de koch : שנייעלע

Algoritmo generador

מיר האָבן דיפיינד אַ פֿונקציע “פּאַינטרעקורסיוואָ” (איך גערופן פון דעם אופֿן “פאַרב”) a la que pasamos los puntos de la línea o líneas del triángulo, און די רעקורסיאָן. La función calcula los vértices de los nuevos segmentos, pinta la figura y se llama a sí misma de nuevo reduciendo el nivel de recursividad.

דעריבער, en cada llamada a la función se reduce el valor de recursividad, אַזוי אַז ווען עס איז נול פינישעס קעריינג רעקורסיאָן.

אַרייַנפיר דזשאַוואַ.אַפּפּלעט.אַפּפּלעט;
אַרייַנפיר דזשאַוואַ.אַווט.גראַפיקס;
/**
* @ מחבר דזשאָסע וואַן אַליאַגאַ
*/
עפנטלעך קלאַס MainApp יקסטענדז אַפּלאַט {
 טאָפּל קספּ1 = 300;
 טאָפּל יפּ1 = 300;
 טאָפּל קספּ2 = 10;
 טאָפּל יפּ2 = 300;
 טאָפּל סינ60 = מאַטה.סין(3.14/3.);
 ינט ניוועל_דע_רעקורסיווידאַד = 6;

 עפנטלעך MainApp() { }

 עפנטלעך סטאַטיק פּאָסל הויפּט(שטריקל[] אַרגס) { }

 ציבור פּאָסל פאַרב(גראַפיקס ג){
   פּאַינטרעקורסיוואָ(ג,ניוועל_דע_רעקורסיווידאַד,קספּ1, יפּ1, קספּ2, יפּ2);
 }

 פּריוואַט פּאָסל פּאַינטרעקורסיוואָ(גראַפיקס ג, ינט איך, טאָפּל קספּ12, טאָפּל יפּ12, טאָפּל קספּ22, טאָפּל יפּ22 ) {
 טאָפּל דקס =(קספּ22-קספּ12)/3.;
 טאָפּל צוויי =(יפּ22-יפּ12)/3.;
 טאָפּל xx=xp12+3*dx/2.-dy*sin60;
 טאָפּל yy=yp12+3*dy/2.+dx*sin60;
 צי(איך<= 0){
      ג.דראַוולינע((ינט)קספּ12,(ינט)יפּ12,(ינט)קספּ22,(ינט)יפּ22);
 }
 אַנדערש{
     פּאַינטרעקורסיוואָ(ג,i-1,xp12,yp12,xp12+dx,yp12+dy);
     פּאַינטרעקורסיוואָ(ג,i-1,xp12+dx,yp12+dy,xx,yy);
     פּאַינטרעקורסיוואָ(ג,i-1,xx,yy,xp22-dx,yp22-dy);
     פּאַינטרעקורסיוואָ(ג,i-1,xp22-dx,yp22-dy,xp22,yp22);
 }
} }
JAVA

לויף דזשאַוואַ