xida
1
#
发表于 2016-10-13 20:38:01
|
只看该作者
|
倒序浏览
|
阅读模式

Newton 分形也是分形里面比较基本的一种，我一直没有写它也是因为觉得可能太容易了。按习惯我写之前先去网上搜索了一下代码，发现居然没有一个能看的。只好自己动手做了一个，效果如下： 多项式 ，染色方案 'hot'： 这里有两个关键： 第一是要使用合适的公式来平滑；第二是要使用 matplotlib 提供的 colormap，而不是自己造轮子定义一个。matplotlib 在显示图像的时候默认会有一个 bilinear 插值，帮你再平滑一次，所以效果比用 PIL 好多了。 图形版只有我一个人支撑是不够的，希望大家都积极 po 出自己作品，形成讨论和交流的气氛。 还有，不知道有没有童鞋是受到这个版块的帖子吸引，开始学习 Python 的呢？有的话可以来报个到。 上面这幅图像的代码如下： import numpy as np import matplotlib.pyplot as plt f = np.poly1d([1, 0, 0, -1]) df = np.polyder(f) def iterate(z): i = 0 while abs(f(z)) > 0.0001: with np.errstate(all='ignore'): w = z - f(z)/df(z) i += np.exp(-1/abs(w-z)) z = w return i y, x = np.ogrid[1:-1:600j, -1:1:600j] z = x + y*1j img = np.frompyfunc(iterate, 1, 1)(z).astype(np.float) fig = plt.figure(figsize=(4, 4), dpi=100) ax = fig.add_axes([0, 0, 1, 1], aspect=1) ax.axis('off') ax.imshow(img, cmap='hot') fig.savefig('newton.png') 复制代码

### 本帖子中包含更多资源

您需要 登录 才可以下载或查看，没有账号？邀请

×