美文网首页数据科学与R语言大数据
分型艺术——哥德尔,埃舍尔,巴赫(2)

分型艺术——哥德尔,埃舍尔,巴赫(2)

作者: 不连续小姐 | 来源:发表于2019-05-06 23:17 被阅读2次

    Godel Escher Bach

    Fractal Background

    I am reading Godel, Escher, Bach, and recursion is one of the main topics the book discussed. Recursion is a pattern and never ends, or goes to infinite. ( EX. Bach's Fugue, Escher's stairs, Godel incompleteness theorem).

    I remember there was a Fractal Artbook in my home, i used to flip through when i didnt want to study. I think Fractal Art is one of the most interesting recursion topics!

    Fractal Art is a never-ending self -similar pattern across different scales, like the snowflakes (Koch Snowflake).

    Today we will be using GGPLOT2 to draw a fractal!

    Fractal Basic

    we use complex plain to express fractals.

    Z=(a+b*i), i= sqrt(-1)

    General Recursive formula algorithm

    the initial value is C, then we repeating the calculations!
    Z_{N}=Z_{n-1}^{2} +C, C=a+b*i

    R Code

    fractal.PNG
    library(ggplot2)
    
    max_iter=25
    cl=colours()
    step=seq(-2,0.8,by=0.005)
    points=array(0,dim=c(length(step)^2,3))
    t=0
    
    for(a in step)
    {
      for(b in step+0.6)
      {
        x=0;y=0;n=0;dist=0
        while(n<max_iter & dist<4)
        {
          n=n+1
          newx=a+x^2-y^2
          newy=b+2*x*y
          dist=newx^2+newy^2
          x=newx;y=newy
        }
    
        if(dist<4)
        { 
          color=24 # black
        }
        else
        {
          color=n*floor(length(cl)/max_iter)
        }
    
        t=t+1
        points[t,]=c(a,b,color)
      }
    }
    
    df=as.data.frame(points)    
    
    
    
    ggplot(data=df, aes(V1, V2, color=cl[V3]))+ 
    geom_point() + theme(legend.position = 'none',
                         axis.text.x=element_blank(), 
         axis.text.y=element_blank(),
      panel.background=element_blank(),
      axis.title.x=element_blank(), 
        axis.title.y=element_blank(),
      panel.grid.major=element_blank(), 
      panel.grid.minor=element_blank(),
       axis.ticks=element_blank()
      )
      
    

    Summary

    Besides fun to look at the fractal artwork, it has practical applications. Such as fractal dimensions provide a solution to measuring the coastline (coastline Paradox).

    Reference:

    http://www.r-chart.com/2010/08/fractals-in-r.html

    相关文章

      网友评论

        本文标题:分型艺术——哥德尔,埃舍尔,巴赫(2)

        本文链接:https://www.haomeiwen.com/subject/ojnjoqtx.html