值得一提的是,第一次听说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)
附图: