【RPi PICO】计算Mandelbrot改进版
[复制链接]
对前一版程序做了修改,使用不同字符代表不同颜色(发散速度),效果更好一些。
from time import ticks_ms, ticks_diff
MAX_ITER = 60
MANDEL_CHAR = (
' ', '.', '`', ',', ':', ';', '|', 'o', '<', '>',
'(', ')', '{', '}', '+', '~', '=', '-', '#', '@'
)
def run(func, param = None):
t1 = ticks_ms()
if param == None:
func()
else:
func(param)
t2 = ticks_ms()
print('calc time:', ticks_diff(t2, t1), 'ms')
# @micropython.native
def calc_mandel(c):
z = 0
for i in range(MAX_ITER):
z = z * z + c
if abs(z) > 4:
return i
return MAX_ITER - 1
def mandelbrot():
N = len(MANDEL_CHAR)
print('')
for v in range(31):
for u in range(81):
n = calc_mandel((u / 30 - 2) + (v / 15 - 1) * 1j)
print(MANDEL_CHAR[(MAX_ITER - n - 1)%N], end='')
print()
run(mandelbrot)
|