首页 > 行业资讯 > 【元胞自动机】基于元胞自动机实现六边形网格含Matlab源码

【元胞自动机】基于元胞自动机实现六边形网格含Matlab源码

时间:2023-03-07 来源: 浏览:

【元胞自动机】基于元胞自动机实现六边形网格含Matlab源码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #元胞自动机应用matlab源码 73个

1 简介

元胞自动机不仅是理论计算机科学领域的一个重要的计算模型 ,而且可视为一无限维的离散动力系统 ,被广泛应用于自然科学和社会科学各领域的复杂性的研究中 ,是一个重要的研究方法和工具.该文以Matlab为开发工具 ,开发了元胞自动机的可视模型 ,为其在各个领域的复杂性研究提供了一个简易,可行的计算机仿真工具

.

2 部分代码

function plotSixGrid(A,L,m,n,RGB,gcf,HL,HW) %PLOTSIXGRID 绘制六边形网格 % A[X,Y] 中心坐标 % L 边长 % m 行数 % n 列数 % gcf 窗口句柄 % RGB 填充颜色 0 Black 1 White % HL 紧邻方式 0 行紧邻 1列紧邻 % HW 奇偶行突出 0 奇数行突出 1 偶数行突出 if HW>0 HW = 1; else HW = 0; end %排除错误输入 if HL>0 HL = 1; else HL = 0; end %排除错误输入 figure(gcf) hold on axis off W = 2; % 线框宽度 Ro3 = 1.732050807568877;% sqrt(3); t = [0, 1.047197551196598, 2.094395102393195, ... 3.141592653589793, 4.188790204786391,... 5.235987755982989, 6.283185307179586]; % linespace(0,2*pi,7); % 原点坐标存在 if length(A)==2 % 网格平铺 X_L = A(1)+(0:L:L*m); Y_L = A(2)+(0:L:L*n); % 遍历 for i=1:m for j=1:n X = X_L(i); Y = Y_L(j); % 根据网格类型,将平铺坐标映射为六边形网格坐标 switch HL case 0 x = L*sin(t)+Ro3*(X-1)+L*Ro3*3/4+L*Ro3*1/4*(-1)^(j+HW); y = L*cos(t)+Y*3/2; case 1 % 旋转30° t = t+1.047197551196598; x = L*sin(t)+X*3/2; y = L*cos(t)+Ro3*(Y-1)+L*Ro3*3/4+L*Ro3*1/4*(-1)^(i+HW); otherwise x = L*sin(t)+Ro3*(X-1)+L*Ro3*3/4+L*Ro3*1/4*(-1)^(j+HW); y = L*cos(t)+Y*3/2; end % 绘制六边形线框 % 在大规模绘图中可能会增加计算开销 plot(x,y,’c’,’Linewidth’,W); % 填充颜色 try Color = RGB(i,j); % Color=[(sin(i/10)+cos(j/8)+2)/4 0 (cos(j/8-4.6)+sin(i/10)+2)/4] % 填充函数开销异常巨大,尽量小规模测试 fill(x,y,[Color Color Color]) catch fill(x,y,[1,0,0])% 异常将显示为红色 end end end end end

3 仿真结果

4 参考文献

[1]付玉慧, 马鹏森. 基于六边形元胞自动机的船舶追越过程模拟研究[J]. 重庆交通大学学报:自然科学版, 2021, 40(9):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐