本文主要介绍了一种谢尔宾斯基三角形生产方法。谢尔宾斯基三角形是混沌与分形学里面的一个经典案例,能生成谢尔宾斯基三角形的方法很多,我采用的方法是取中点的方式,具体流程如下:
1.在任意三角形△ABC内或外任取一点P;
2.在1、2、3中随机取数,如果随机数是1,则取PA的中点(如果随机数是2,则取PB的中点;如果随机数是3,则取PC的中点;),作为新的点P,不断重复该过程。
MATLAB程序如下:
tic;clear;clc;xa=250;ya=30;xb=30;yb=480;xc=480;yc=480;plot(xa,ya,'.r');hold on;plot(xb,yb,'.r');plot(xc,yc,'.r');x0=250;y0=250;j=1;k=0.5;for i=1:1:20000x=randperm(3,1);if(x==1)xi=k*(x0+xa);yi=k*(y0+ya);elseif(x==2)xi=k*(x0+xb);yi=k*(y0+yb);elsexi=k*(x0+xc);yi=k*(y0+yc);endendix0=xi;y0=yi;if(k==0.1)plot(x0,y0,'.b');endif(k==0.2)plot(x0,y0,'.r');endif(k==0.3)plot(x0,y0,'.b');endif(k==0.4)plot(x0,y0,'.g');endif(k==0.5)plot(x0,y0,'.b');endif(k==0.6)plot(x0,y0,'.r');endif(k==0.7)plot(x0,y0,'.b');endif(k==0.8)plot(x0,y0,'.g');endif(k==0.9)plot(x0,y0,'.r');endendtoc;
效果如图:
Amazing!