koch.m

来自「《MATLAB 6.5辅助图像处理》 本书是基于MATLAB 6.5的图像处」· M 代码 · 共 29 行

M
29
字号
function koch(s,t,n)
if size(s)~=size(t)
  disp('输入参数的维数必须相等');
else
  for j=1:n
    x=[];
    y=[];
    for i=1:length(s)-1
      d1=s(i+1)-s(i);
      d2=t(i+1)-t(i);
      x1=s(i)+[0,d1/3,(s(i+1)+s(i))/2-sqrt(3)/6*d2-s(i),2/3*d1,d1];
      y1=t(i)+[0,d2/3,(t(i+1)+t(i))/2+sqrt(3)/6*d1-t(i),2/3*d2,d2];
      if i==1
        x=[x x1];
        y=[y y1];
      else
        x=[x x1(2:5)];
        y=[y y1(2:5)];
      end
    end
    s=x;
    t=y;
    plot(x,y);
    %title('n='+int2str(n));
    xlabel('x');
    ylabel('y');
  end
end

⌨️ 快捷键说明

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