Matlab画六边形蜂窝网络点(任意个数)

matlab 代码:

clear;
clc;
close all;
bsNum=19;
r=0.5;    %覆盖半径

% x=solve('3*(n-1)*n=yy','n');
s = roots([3, -3, 1-bsNum]);
n=ceil(max(s(1),s(2)))+1;

N_col = n;   %列
% 列数设置
N_row = 4*n;   %行  *2

% 生成六边形中点坐标 %
CELL0=[];
y_point= 0;
for i_row =1:1:N_row
    
    if(mod(i_row,2)==1)   %第一列 第i_row行的x坐标
        x_point =r;
    else
        x_point = 2.5*r;
    end
    y_point= y_point+ sqrt(3)/2*r;     %第一列 第i_row行的y坐标
    
    for i_col = 1:1:N_col    %第i_col列的x&y坐标
        x_point = x_point+ 3*r;
        CELL0(i_row,i_col)=x_point;
        CELL0(i_row+N_row,i_col)=y_point;
    end

end
centerpoint=[CELL0(ceil(N_row/2),ceil(N_col/2)),CELL0(ceil(N_row/2)+N_row,ceil(N_col/2))];


CEx=reshape(CELL0(1:N_row,:),N_row*N_col,1)-centerpoint(1,1);
CEy=reshape(CELL0(N_row+1:2*N_row,:),N_row*N_col,1)-centerpoint(1,2);
CELL0=[CEx,CEy];

CE
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值