Hi,
I arranged the x-y space in hexagonal format as a layer. How can I add another similar layer on top with a distance in the z-direction?
I appreciate your help.
Thanks a lot,

 Réponse acceptée

Matt J
Matt J le 17 Oct 2023
Modifié(e) : Matt J le 17 Oct 2023

0 votes

V=nsidedpoly(6).Vertices;
[X,Z]=ndgrid(V(:,1),0:3);
[Y,~]=ndgrid(V(:,2),0:3);
scatter3(X(:),Y(:),Z(:)); view(-60,70)
xlabel X; ylabel Y; zlabel Z

7 commentaires

S. Hannan
S. Hannan le 18 Oct 2023
Modifié(e) : S. Hannan le 18 Oct 2023
I arranged the x-y system with the code bellow:
m = 6;
n = 7;
[x,y] = meshgrid(0:m, 0:n);
X = (3*x - mod(x+y,2)) / 2;
X=X+0.5;
X=X(4:8,1:4);
Y = (sqrt(3)/2)*y;
Y=Y(4:8,1:4);
Y=Y-Y(1,1);
plot(X,Y,'or');
As you can see, it is shown in a 2D space. Now, I want to show it in a 3D space with various z values (z is constant for each layer) using this code:
m = 6;
n = 7;
[x,y,z] = meshgrid(0:m, 0:n, 0:1);
x = (3*x - mod(x+y,2)) / 2;
x = x+0.5;
x = x(4:8,1:4,:);
y = (sqrt(3)/2)*y;
y=y(4:8,1:4,:);
y=y-y(1,1);
z=z(4:8,1:4,:);
Dyuman Joshi
Dyuman Joshi le 18 Oct 2023
What is the expected output?
S. Hannan
S. Hannan le 18 Oct 2023
Showing a multilayer system.
It would help to have a visual example of the expected output.
From what I understood of the provided description -
m = 6;
n = 7;
[x,y] = meshgrid(0:m, 0:n);
X = (3*x - mod(x+y,2)) / 2;
X=X+0.5;
X=X(4:8,1:4);
Y = (sqrt(3)/2)*y;
Y=Y(4:8,1:4);
Y=Y-Y(1,1);
X = X(:);
Y = Y(:);
z_values = [0 0.5 1];
figure
for k=z_values
plot3(X,Y,k*ones(size(X)),'o','Color', rand(1,3))
hold on
end
%end
hold off
Do you want to join the dots in each 2D layer?
S. Hannan
S. Hannan le 18 Oct 2023
Thanks a lot.
No, I don't need to connect them.
Now, I want to show it in a 3D space with various z values (z is constant for each layer) using this code:
I don't know what you think this changes about my answer. Isn't this what you want?
m = 6;
n = 7;
[x,y] = meshgrid(0:m, 0:n);
X = (3*x - mod(x+y,2)) / 2;
X=X+0.5;
X=X(4:8,1:4);
Y = (sqrt(3)/2)*y;
Y=Y(4:8,1:4);
Y=Y-Y(1,1);
V=[X(:),Y(:)];
[X,Z]=ndgrid(V(:,1),0:3);
[Y,~]=ndgrid(V(:,2),0:3);
scatter3(X(:),Y(:),Z(:)); view(-70,83)
xlabel X; ylabel Y; zlabel Z
S. Hannan
S. Hannan le 19 Oct 2023
Thanks a lot.
Yes. this is the desired structure.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Interpolation 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