Filter löschen
Filter löschen

How to mirror a 3D plot in same coordinates?

7 Ansichten (letzte 30 Tage)
vilas math
vilas math am 23 Mai 2021
Beantwortet: Tejas am 22 Feb. 2024
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)

Antworten (1)

Tejas
Tejas am 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!

Kategorien

Mehr zu Lighting, Transparency, and Shading finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by