我目前正在使用PhotoImage和tkinter繪製Mandelbrot像素。我基本上直接使用算法而不做任何修改。有沒有使計算更快的方法?也許可以快速填充大面積的顏色,或預先確定常量?代碼如何渲染Mandelbrot設置更快?
部分:
ITERATIONS = 50
WIDTH, HEIGHT = 600, 600
CENTER = (-.5, 0)
DIAMETER = 2.5
def mandel(c):
z = 0
for i in range(ITERATIONS):
z = z**2 + c
if abs(z) > 2:
return i
return ITERATIONS
root = Tk()
canvas = Canvas(root, width=WIDTH,height=HEIGHT)
canvas.pack()
img = PhotoImage(width=WIDTH, height=HEIGHT)
canvas.create_image((WIDTH/2, HEIGHT/2), image=img, state="normal")
real = CENTER[0] - 0.5 * DIAMETER
imag = CENTER[1] - 0.5 * DIAMETER
def color(i):
colors = ("#0000AA", "#88DDFF", "#FF8800", "#000000")
if i == ITERATIONS:
return colors[-1]
else:
choice = (i//2) % len(colors)
return colors[choice]
for x in range(WIDTH):
for y in range(HEIGHT):
i = mandel(complex(real, imag))
img.put(color(i), (x, HEIGHT-y))
imag += DIAMETER/HEIGHT
imag = CENTER[1] - 0.5 * DIAMETER
real += DIAMETER/WIDTH
mainloop()
勞駕這裏補充,並在各自的提案都尊重StackOverflow的答案作者,說明你的初始**代碼執行時間[微秒] **(+相應的解決方案的,其中提出的) ,爲快速方法必須擊敗的基準和基準,以及您期望的加速度閾值是多少 - 您希望該過程獲得多快?感謝您的kinde重新考慮。 – user3666197 2014-10-19 08:26:07