In Matlab, I create a fairly complicated 3D plot, then manipulate the view option by hand up to a point where I am happy with what I see (below). How can I reuse the parameters
In order to get something out of view
that you can then pass to view
to reconstruct the viewpoint, you need to specify two outputs to view
which will yield the current azimuth and elevation.
[az, el] = view(ax1);
You can then pass these to view
on a different (or the same) axes to specify the viewpoint
view(ax2, az, el);
You can also use the View property of the axes
object.
AzEl = get(ax1, 'View');
set(ax2, 'View', AzEl);
Note, however, that there are many properties which control the view of an axes including the Projection
, the DataAspectRatio
, the PlotBoxAspectRatio
and all of the camera properties. Depending on your use case, you may need to specify these as well.
ok, based on Suever's comments, I realized that all the figure properties I need can be accessed through the Graphical Interface called matlab.graphics.axis.Axes
. This is where the parameters of the camera can be found. Another approach is to find them one by one as follows:
get(gca,'Projection')
get(gca,'CameraPosition')
get(gca,'CameraViewAngle')
get(gca,'CameraTarget')
and then set them directly in the script:
set(gca,'Projection','perspective')
set(gca,'CameraPosition',[-7 -5 3]/15)
set(gca,'CameraViewAngle',85)
set(gca,'CameraTarget',[0 .5 0])
I originally thought the view
command would provide this information at once.