Generating an Array of Hexagonal Shape Pattern
조회 수: 57 (최근 30일)
이전 댓글 표시
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
댓글 수: 1
daniel
2015년 6월 16일
this is a nice list of resources that may help you, I know this is an old post but, if you are still interested these links are quite helpful.
답변 (1개)
Bharat
2017년 1월 6일
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/176441/image.png)
댓글 수: 3
Sim Mah
2018년 2월 7일
I think they are not hexagon. The distances between the center and the corners are not constant.
참고 항목
카테고리
Help Center 및 File Exchange에서 Contour Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!