154|2

1万

帖子

13

资源

版主

【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)

 


回复

1万

帖子

13

资源

版主

 运行效果

-------------------------==================~~~~~~~++}}{>.(|< ++~~~~==========----
----------------------==================~~~~~~~~+++}}{)(o-<){}++~~~~~~=========--
-------------------==================~~~~~~~~++++}}{>oo:  ,>>(}+++~~~~~~========-
----------------=================~~~~~~~~++++++}}}{)<       .>{}}++++~~~~~=======
-------------================~~~~~~~~~~+++}}}{{{{))(o~      :(){{}}}+++++~~~=====
----------===============~~~~~~~~~~~++++})-@><((o>o :`=    .:|;< >){{{)`}+~~~====
-------==============~~~~~~~~~~~~+++++}}{)o.  ~,+                ,<<@:; :}+~~~===
-----=============~~~~~~~~~+++++++++}}}{)(>:                          `<{}+~~~~==
--=============~~~~~+++++++++++}}}}}}{)#:@`                          #o({}++~~~==
-===========~~~~~~++}{<({{}{{){{{{{{{)(<:;                             o>>)++~~==
==========~~~~~~~+++}{>o<<>(>`o((())((<=                                 #)++~~~=
========~~~~~~~+++}}}{)>|>  ;- ==~.<<<:-                                |(}++~~~=
=====~~~~~~~++++}}{{{(<| ;          ::{                                 <:}++~~~=
==~~~~~++++++}}}{)|>><;-             -                                  ~{}+~~~~=
~~~+++})}}}}{{{))>o=);-                                                >{}++~~~~=
                                                                    -o()}}++~~~~=
~~~+++})}}}}{{{))>o=);-                                                >{}++~~~~=
==~~~~~++++++}}}{)|>><;-             -                                  ~{}+~~~~=
=====~~~~~~~++++}}{{{(<| ;          ::{                                 <:}++~~~=
========~~~~~~~+++}}}{)>|>  ;- ==~.<<<:-                                |(}++~~~=
==========~~~~~~~+++}{>o<<>(>`o((())((<=                                 #)++~~~=
-===========~~~~~~++}{<({{}{{){{{{{{{)(<:;                             o>>)++~~==
--=============~~~~~+++++++++++}}}}}}{)#:@`                          #o({}++~~~==
-----=============~~~~~~~~~+++++++++}}}{)(>:                          `<{}+~~~~==
-------==============~~~~~~~~~~~~+++++}}{)o.  ~,+                ,<<@:; :}+~~~===
----------===============~~~~~~~~~~~++++})-@><((o>o :`=    .:|;< >){{{)`}+~~~====
-------------================~~~~~~~~~~+++}}}{{{{))(o~      :(){{}}}+++++~~~=====
----------------=================~~~~~~~~++++++}}}{)<       .>{}}++++~~~~~=======
-------------------==================~~~~~~~~++++}}{>oo:  ,>>(}+++~~~~~~========-
----------------------==================~~~~~~~~+++}}{)(o-<){}++~~~~~~=========--
-------------------------==================~~~~~~~++}}{>.(|< ++~~~~==========----

 

 

 


回复

1万

帖子

13

资源

版主

不过发现了一个奇怪的问题,在PICO上每次的计算时间会增加,而在其它开发板上不会。


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/8 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表