PIZiadas圖形

PIZiadas圖形

我的世界是英寸.

遞歸分形: 看台的科赫 [JAVA]

curva-de-koch-triangulo-completo-150我們已經看到了第一個節目叫 “DrawWorld” 我們推出了JAVA編程面向圖形. Este módulo de programación nos ha servido para ver un primer fractal recursivo: 從三角Sierpisnki的.

讓我們改變這一基本的程序來生成一個新的基本遞歸分形: 該 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.

德看台科赫, 也被稱為雪花是可以通過不同的程序作為已知的方式獲得一個形 IFS系統的功能 迭代 (確定性的), 基於規則的系統, 等等.

遞歸算法 已經憑藉著也代表與分形密切相關的一個概念: 無窮大. 遞歸的本質允許描述在曲線本身的一個非常簡單的形式. 它包含了另一個,這反過來又複製模式在較小的尺度上宇宙 (所以收縮) 在被無限重複的序列.

Koch曲線屬於該組的 自相似的分形[1], 為獲得決定性的方法.

curva-de-koch-0

Iniciador

curva-de-koch-1

Primera iteración

分形維數

尺寸 對象的是拓撲的概念,放置或分類對象 度量空間. 與整體尺寸的空間的直觀概念與所謂的分形維碰撞, 採取實際值.

皮亞諾妓女 它是能夠填充彎曲面的. 有這樣兩個維度?, 人們不禁要問.

一個分形維數與粗糙度相關, 碎片, 其, 因此,一個更大的禮物更粗糙或呈鋸齒狀. 在描述任何情況下,它提供了有關其複雜的信息.

科赫曲線具有比 S = 1/3的, 同 N = 4, 因此,其分形維數:

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

我們已經定義了一個函數 “paintRecursivo” (我叫的方法 “油漆”) 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.

Por lo tanto, en cada llamada a la función se reduce el valor de recursividad, 這樣,當它是零完成賬面遞歸.

進口 java.applet.Applet的;
進口 java.awt.Graphics的;
/**
* @作者何塞·胡安·阿利亞加
*/
公眾  MainApp 擴展 Applet的 {
 一倍 XP1 = 300;
 一倍 YP1 = 300;
 一倍 XP2 = 10;
 一倍 YP2 = 300;
 一倍 sin60 =數學。黃大仙(3.14/3.);
 詮釋 nivel_de_recursividad = 6;

 公眾 MainApp() { }

 公眾 靜止 無效 (串[] 參數) { }

 公共無效 油漆(圖形克){
   paintRecursivo(克,nivel_de_recursividad,XP1,YP1,XP2,YP2);
 }

 私人無效 paintRecursivo(圖形克, 詮釋 我, 一倍 XP12, 一倍 yp12, 一倍 XP22, 一倍 yp22 ) {
 一倍 DX =(XP22-XP12)/3.;
 一倍 二=(yp22 yp12)/3.;
 一倍 xx=xp12 3*dx/2.-dy*sin60;
 一倍 yy=yp12 3*dy/2. dx*sin60;
 如果(我<= 0){
      g.drawLine((詮釋)XP12,(詮釋)yp12,(詮釋)XP22,(詮釋)yp22);
 }
 其他{
     paintRecursivo(克,i-1,xp12,yp12,xp12 dx,yp12 dy);
     paintRecursivo(克,i-1,xp12 dx,yp12 dy,xx,yy);
     paintRecursivo(克,i-1,xx,yy,xp22-dx,yp22-dy);
     paintRecursivo(克,i-1,xp22-dx,yp22-dy,xp22,yp22);
 }
} }
JAVA

當然JAVA