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功能系统 迭代 (在确定性), 以规则为基础的系统, 等等.

递归算法 也有代表与分形的概念密切相关的美德: 无穷. 递归描述了一个非常简单的形式的曲线本身的精髓. 宇宙包含另一个,这反过来又复制一个较小的规模上的图案 (所以收缩) 无休止地重复序列.

科赫曲线属​​于 自相似的分形[1], 获得确定性的方法.

curva-de-koch-0

Iniciador

curva-de-koch-1

Primera iteración

分形维数

尺寸 一个对象被放置或拓扑的概念,对象分类 度量空间. 直观的全尺寸空间的冲突,与所谓的分形维数的概念, 取实际值.

皮亚诺婊子 是一条曲线能填满. 因此,你有两个维度?, 人们不禁要问,.

相关联的粗糙度与分形维数, 碎片, 其, 更大的尺寸呈现出更为粗糙或呈锯齿状. 在任何情况下,给出了其复杂性特征的信息.

科赫曲线有一个比 = 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.

从而, 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