⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 random_centerqqq.m

📁 该程序为matlab环境下的程序
💻 M
字号:
function random_centerqqq(Z,N); 
% 三角形中点位移法分形曲面生成[法向交叉、劈裂] 
% Z is the position of three points. 
% N is the times of recursion. 
% Example: 
%   random_centerqqq([0,6,3+4i],4); 
% Author's email:zjliu2001@163.com 
% 2005.05.22 
% 

Z=random_center_Cccc(Z,0,N); 
Z(:,4)=Z(:,1); 
hold on 
for k=1:size(Z,1); 
   plot(Z(k,1:end)) 
end                % 根据数据绘图 

function [Z,T]=random_center_Cccc(Z,n,N); 
% 计算数据 
if n<N; 
   zz=[]; 
   R=rand; 
   for k=1:size(Z,1); 
       L=sum(abs(diff([Z(k,1:end),Z(k,1)])));; 
       ze=conutliuvv(Z(k,1),Z(k,2),Z(k,3),n,R); 
       zf=conutliuvv(Z(k,3),Z(k,2),Z(k,1),n,R); 
       zg=conutliuvv(Z(k,1),Z(k,3),Z(k,2),n,R); 
       zz=[zz;[ze,zf,zg]]; 
       zz=[zz;[Z(k,1),ze,zg]]; 
       zz=[zz;[Z(k,2),ze,zf]]; 
       zz=[zz;[Z(k,3),zf,zg]]; 
   end 
   Z=zz; 
   Z=random_center_Cccc(Z,n+1,N); 
end 
function yp=conutliuvv(x,y,z,n,R); 
s=sign(imag(z-mean([y,x]))); 
s=(-1)^((s+1)/2); 
A=angle(y-x)+s*pi/2;  % 法向交叉的偏转角 
                              % A=angle(y-x)-s*pi/2;时向两侧劈裂 
if mod(n,2)               % 计算交叉点位置 
   yp=mean([x,y])+abs(y-x)*R*exp(i*A)/(1+max(abs([x,y])))/3; 
else 
   yp=mean([x,y])+abs(y-x)*R*exp(i*A)/(1+min(abs([x,y])))/3; 
end

⌨️ 快捷键说明

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