How to mirror a 3D plot in same coordinates?
10 views (last 30 days)
Show older comments
clear
clc
m = 100 ; n = 100 ;
zv = linspace(-1,1,m);
phiv = linspace(0,2*pi,n);
[zv, phiv] = meshgrid(zv,phiv);
rv = ones(size(zv))*1;
% Used the gaussian formula
%rv2 = -0.8*exp(-1.2*(phiv-4).^2)+1;
% Meshing(Question?)
%[Theta, R] = meshgrid(phiv,rv);
L = linspace(-0,0.5,50);
L=[L fliplr(L)];
zb1 = zeros(m,n,length(L)) ;
% checking the geometry in Z-direction by value "f"
phiv_loc = phiv(:,1); % take 1st column
for i = 1:length(L)
f=L(i);
rv3(:,i) = -f*exp(-1.2*(phiv_loc-4).^2)+1;
end
%mesh(Theta,R,zv)
% figure(1)
% plot3(phiv,rv,zv)
% hold on
% plot3(phiv,rv2,zv)
% hold on
% plot3(phiv,rv,zb1(:,:,1))
% axis equal
% Converting polar to cartesian cordinates in (x,y,z) direction
[x,y,z] = pol2cart(phiv,rv,zv);
%[x2,y2,z2] = pol2cart(phiv,rv2,zv);
[x3,y3,z3] = pol2cart(phiv,rv3,zv);
% Coverting Pol2cart inside the loop
%[x3,y3,z3] = pol2cart(phiv,rv,zb1);
figure(2)
%plot3(x,y,z)
%hold on
surf(x3,y3,z3)
%hold on
%plot3(x3,y3,z3(:,1))
axis equal
ax = gca;
%set(gca,'xdir','reverse')
flip(figure(2),2)
0 Comments
Answers (1)
Tejas
on 22 Feb 2024
Hello Vilas,
I am assuming that by “mirror of a 3-D plot”, you meant mirror of plot along some axis.
Below is an example of how negating the coordinates of an axis creates a mirror image of plot along that axis. I have created two plots, first plot to show the original plot and second plot to show the mirror of that plot along y-axis.
m = 100; n = 100;
zv = linspace(-1,1,m);
phiv = linspace(0,2*pi,n);
[zv, phiv] = meshgrid(zv,phiv);
rv = ones(size(zv))*1;
L = linspace(-0,0.5,50);
L = [L fliplr(L)];
zb1 = zeros(m,n,length(L));
phiv_loc = phiv(:,1);
rv3 = zeros(size(zv,1), length(L));
for i = 1:length(L)
f = L(i);
rv3(:,i) = -f*exp(-1.2*(phiv_loc-4).^2)+1;
end
[x,y,z] = pol2cart(phiv,rv,zv);
[x3,y3,z3] = pol2cart(phiv,rv3,zv);
figure(1)
surf(x3,y3,z3)
axis equal
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Original 3D Plot')
figure(2)
surf(x3,-y3,z3)
axis equal
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Mirrored 3D Plot along y-axis')
Below is Screen Shots of the desired output :
For more information on negation of vector, refer this documentation :
Hope it helps!
0 Comments
See Also
Categories
Find more on Graphics Performance in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!