cantor三分集

本文约 300 字,阅读需 1 分钟。

值得一提的是,第一次听说cantor三分集是在数字电路课上,然而数电是我最不喜欢的课程之一。。。。。。

分形大都具有自相似、自仿射性质,所以cantor三分集用递归再合适不过了,本来不想用matlab的,毕竟以后不会靠这东西。但是考虑到其方便的绘图功能还是用了。matlab写递归还是头一遭,心慌慌,不过试了一下发现和其他语言基本没差别!

源码

function cantor(Ax, Ay, Bx, By)
precision = 0.001;
if Bx-Ax < precision
    plot([Ax, Bx], [Ay, By], '-', 'LineWidth', 1, 'Color', [0 0 0]);
else
    plot([Ax, Bx], [Ay, By],  '-', 'LineWidth', 1, 'Color', [0 0 0]);
    hold on
    Cx = Ax + (Bx-Ax)/3;
    Cy = Ay + 1;
    Dx = Bx - (Bx-Ax)/3;
    Dy = By + 1;
    Ay = Ay + 1;
    By = By + 1;
    cantor(Ax, Ay, Cx, Cy);
    cantor(Dx, Dy, Bx, By);
end

命令窗口直接调用就行了:

cantor(10, 1, 500, 1)

附图:

总阅读量次。