电子产业一站式赋能平台

PCB联盟网

搜索
楼主: QQ1641085143
收起左侧

求教大佬 这个w-m分形函数怎么用matlab打出来

[复制链接]

35

主题

892

帖子

1091

积分

三级会员

Rank: 3Rank: 3

积分
1091
发表于 2023-4-5 17:22:17 | 显示全部楼层
function genWM(Ds,lambda,nmax)
%GENWM 生成W-M 随机曲面
%   此处显示详细说明
%   lambda
%   Ds 分形维数
if nargin < 3
    nmax = 10;
    if nargin < 2
        lambda = 1.5;
        if nargin < 1
            Ds = 2.3;
        end
    end
end
% nmax = 10;
An = 2*pi*rand(nmax,1);
Bn = 2*pi*rand(nmax,1);
Cn = randn(nmax,1);


x = 0:0.1:6;
y = 0:0.1:6;
[X,Y] = meshgrid(x,y);
% lambda = 1.5;
% Ds = 2.05;
Z= zeros(length(x),length(y));
for ni = 1:nmax
    t = -(3-Ds)*ni;
    temp1 = X.*cos(Bn(ni)) + Y.*sin(Bn(ni));
    zn = Cn(ni)*lambda^t.*sin(lambda^ni.*temp1+An(ni));
    Z = zn + Z;
end


surf(X,Y,Z);
xlabel('X');
ylabel('Y');
zlabel('Z');
filename = ['W-M fractal surface','_Ds',num2str(Ds),'_lambda',num2str(lambda),'.bmp'];
saveas(gcf,filename,'bmp');


end
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表