我已經創建了一個Python文件來生成Mandelbrot設置圖像。原來的數學代碼不是我的,所以我不理解它 - 我只是對它進行了大量修改,使其速度提高了250倍(線程規則!)。如何在Mandelbrot集的一部分上「放大」?
無論如何,我想知道如何修改代碼的數學部分,使其渲染一個特定的位。這裏是數學部分:
for y in xrange(size[1]):
coords = (uleft[0] + (x/size[0]) * (xwidth),uleft[1] - (y/size[1]) * (ywidth))
z = complex(coords[0],coords[1])
o = complex(0,0)
dotcolor = 0 # default, convergent
for trials in xrange(n):
if abs(o) <= 2.0:
o = o**2 + z
else:
dotcolor = trials
break # diverged
im.putpixel((x,y),dotcolor)
而且大小定義:
size1 = 500
size2 = 500
n=64
box=((-2,1.25),(0.5,-1.25))
plus = size[1]+size[0]
uleft = box[0]
lright = box[1]
xwidth = lright[0] - uleft[0]
ywidth = uleft[1] - lright[1]
我需要做什麼修改,使之呈現組中的特定部分?
我錯過了如何使用線程來使代碼更快,因爲python bytecod由於GIL,線程上的e不會同時執行。 – nosklo 2009-02-08 09:28:10