关于分形程序

本文介绍了如何用易语言实现芒德勃罗集的分形作图程序,通过迭代算法进行分形图像的绘制,强调了算法的重要性,并探讨了分形在数学和生活中的美学意义。虽然程序时间复杂度高,但展示了分形的自相似性和数学魅力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大二时曾经一度沉迷于分形,并且用易语言实现了一个芒德勃罗集的分形作图程序,可以无限放大哟。本文就是讲其算法和原理的,其具体的数学思想可谓博大精深,我就搞不太懂了,在这里我也只能说说其算法。

    本站上的分形程序的算法思想如下。

    程序算法一点都不难,就是两个迭代式,当迭代满足一定条件后就退出迭代,然后根据迭代的不同结果对画板控件上的点进行着色。我设置的迭代最差情况是每个象素迭代300次,如果要绘制800×600的图,就要迭代800×600×300次,且迭代使用的是双精度浮点型,计算量很大。程序的时间复杂度很大。不过还没达到绘制一幅图要一顿饭的时间。

    难的是它的数学思想,分形的最大特点就是自相似性。 目前我所做的只是复平面上的迭代 z→z^2+c(^表示乘方), 其具体化为 x→x^2-y^2+cx , y→2xy+cy, 显然在无穷大处是一个吸引子,但是0附近有一片区域,无论迭代多少次,所得到的点都跑不出这个区域,这就是芒德勃罗集(M集),根据迭代的情况对每个象素点着色,就得到了美丽的分形图了。

    通常所说的M集是迭代二次函数:z→z^2+c产生的,此函数具体化就是:
                     x→x^2-y^2+Cx,   y→2xy+Cy
    其中x^2表示x的平方,z=x+iy,c=Cx+iCy。M集实际上是常数c=(Cx,Cy)构成的图象。让c从屏幕左上角开始变化,逐行增加,一直变到屏幕右下角。如果取的区域是200乘200,则一共要计算40000个点,把计算结果用不同的颜色标记下来,就得到一幅图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值