为了账号安全,请及时绑定邮箱和手机立即绑定

分型艺术——哥德尔,埃舍尔,巴赫(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) Z=(a+b*i), i= sqrt(-1) Z=(a+bi),i=sqrt(1)

General Recursive formula algorithm

the initial value is C, then we repeating the calculations!
ZN=Zn−12+C,C=a+b∗i Z_{N}=Z_{n-1}^{2} +C, C=a+b*i ZN=Zn12+C,C=a+bi

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:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消