Generating an Array of Hexagonal Shape Pattern

Hi,
Here I have added a simple code, modifying my previous post (sorry for my repost, as I am trying to make my question much more understandable). The following code generates an array of values (i.e. H matrix here) having a dimension of 256x256 which is a square matrix (pattern looks like some black and white strips). I would like to modify this square matrix into a regular hexagonal shape through Matlab code. I have no idea how to do this,so can anyone plese help me in this regard?
Code:
mx=5;
my=10;
[x, y]=meshgrid(-1:2/255:+1, -1:2/255:+1);
H=(cos((x*pi*mx)+(y*pi*my)))>0;
figure(1)
imagesc(H); colormap gray; axis image; axis off

Réponses (1)

Bharat
Bharat le 6 Jan 2017
I used patch to create a hexagonal grid.
% MWE %
l=10;
b=10;
C=rand(l,b);
xhex=[0 1 2 2 1 0]; % x-coordinates of the vertices
yhex=[2 3 2 1 0 1]; % y-coordinates of the vertices
for i=1:b
j=i-1;
for k=1:l
m=k-1;
patch((xhex+mod(k,2))+2*j,yhex+2*m,C(k,i)) % make a hexagon at [2i,2j]
hold on
end
end
axis equal
Note that this code will generate hexagons at [2i,2j] co-ordinates. You can rescale the axis (TickLabels) or rescale the vertices of the hexagon. The mod(k,2) is used to shift the hexagons by 1 in alternate rows so that they fit. I have used a random matrix. You can simply change the matrix C to your data and plot the grid accordingly.

3 commentaires

sara hamdy
sara hamdy le 8 Août 2017
if i want to draw 7 cell , and how i change the dimension of cell?
Sim Mah
Sim Mah le 7 Fév 2018
I think they are not hexagon. The distances between the center and the corners are not constant.
Sim Mah, they are hexagon, just not regular hexagons.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear Algebra dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by