koch.m

来自「自己编的绘制koch曲线和serpinki垫的matlab小程序」· M 代码 · 共 27 行

M
27
字号
function k=koch(x1,y1,x2,y2)
    % d为迭代终止的条件
    d=0.5;
    if (x2-x1)^2+(y2-y1)^2<d  % 终止条件
        drawline(x1,y1,x2,y2);
    else
       x3=x1+(x2-x1)/3;
       y3=y1+(y2-y1)/3;
       x4=x2-(x2-x1)/3;
       y4=y2-(y2-y1)/3;
       l=sqrt((x4-x3)^2+(y4-y3)^2);
       a=alpha(x3,y3,x4,y4);
       % 当起始点位于终止点的右方,向上隆起;当起始点位于终止点的左面,向下隆起,所以角a需要再加上pi弧度
       % 同时要注意Matlab中三角函数\反三角函数的取值范围 
       if x2-x1<0
           a=a+pi;
       end
       
       x5=x3+cos(a+pi/3)*l;
       y5=y3+sin(a+pi/3)*l;
       
       koch(x1,y1,x3,y3)
       koch(x4,y4,x2,y2)
       koch(x3,y3,x5,y5)
       koch(x5,y5,x4,y4)
   end
   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?