【发布时间】:2018-10-24 23:22:08
【问题描述】:
我有这个代码:
from PIL import Image
import colorsys
xmin, xmax = -2.0, 2.0
ymin, ymax = -2.0, 2.0
depth = 12
imgx, imgy = 512, 512
maxIter = 256
image = Image.new("RGB", (imgx, imgy))
for y in range(imgy):
cy = y * (ymax - ymin)/(imgy - 1) + ymin
for x in range(imgx):
cx = x * (xmax - xmin)/(imgx - 1) + xmin
c = complex(cx, cy)
z = 0
for i in range(maxIter):
if abs(z) > 2.0:
break
z = c + complex(0.25, 0.1)
r = i
g = int((i*50)%256)
b = int(255 - i)
image.putpixel((x, y), (r, g, b))
它创建了一个圆圈的图像(下图),我不明白为什么。我认为这可能与 for 循环和 if 语句有关,但我无法弄清楚问题是什么。如果不是,那是什么?
旁注:此代码改编自我编写的 Mandelbrot 集代码。唯一的区别是z = c + complex(0.25, 0.1), 不是z = z**2 + c.
【问题讨论】:
-
查看这个可爱的debug 博客寻求帮助。此代码为显示产生什么值?请提供说明性的跟踪输出。
-
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。您发布的代码因未定义符号而失败——可能缺少
import。 -
@Prune 抱歉,忘记上传图片
标签: python fractals mandelbrot