In 3D plot, how do I set the vertical axis to be y-axis down, z-axis forward and x-axis right?
42 views (last 30 days)
Show older comments
My hybrid 3D curves and images were drawn together, and I initially succeeded in drawing the result I wanted below, but the only thing missing was the y-axis and z-axis orientation. how do I set the vertical axis to be y-axis down, z-axis forward and x-axis right?(i.e. the physical coordinate system of the camera),your answer would be great appreciately!
%% x,y,z axis is located origin
% https://ww2.mathworks.cn/matlabcentral/answers/386936-change-x-y-z-axes-position-in-a-3d-plot-graph
hAxis = gca;
hAxis.XRuler.FirstCrossoverValue = 0; % X crossover with Y axis
hAxis.XRuler.SecondCrossoverValue = 0; % X crossover with Z axis
hAxis.YRuler.FirstCrossoverValue = 0; % Y crossover with X axis
hAxis.YRuler.SecondCrossoverValue = 0; % Y crossover with Z axis
hAxis.ZRuler.FirstCrossoverValue = 0; % Z crossover with X axis
hAxis.ZRuler.SecondCrossoverValue = 0; % Z crossover with Y axis
hAxis.Parent.Color=[1,1,1];
view(3);
box off;grid off;hold on;
%% space curve
t = -300:.1:400;
y = 200*sin(t/30);
z = 200*ones(size(t));
plot3(hAxis,t,y,z)
axis([-300,600,-300,600,0,200])
%% space image
img = imread("peppers.png");
image(hAxis,img)
%% adjust to show axes label
xlabel("x");ylabel("y");zlabel("z")
hAxis.YDir="reverse";
hAxis.ZDir = "reverse";
hAxis.XAxis.Label.Position=[hAxis.XLim(end),0,0];
hAxis.YAxis.Label.Position=[0,hAxis.YLim(end),0];
hAxis.ZAxis.Label.Position=[0,0,hAxis.ZLim(end)];
hAxis.LabelFontSizeMultiplier=3;
NOTES:
The following rendering should be oriented like the red arrow I drew by hand,not black,(The default rotation has the z-axis facing forward instead of the default z-axis vertical, just like matlab's built-in functions pcshow, pcplayer, etc. have the verticalAxis property to control the axis orientation)
6 Comments
Answers (0)
See Also
Categories
Find more on Title 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!