3D data space coordinates to normalized figure coordinates conversion
While using annotation function, you may want to transform data space coordinates to normalized figure coordinates.
If you are using 2D axes you can use dsxy2figxy or ds2nfu. But they can't work at 3D axes.
And this utility function do this. It can work for 3D axes and 2D axes as well.
I try to make it work for any axes setting, and now it can work for the following conditions:
1, 'Projection' can be 'orthographic' or 'perspective'.
2, arbitrary rotate the axes, even the up vector is not [0 0 1].
3, any valid 'DataAspectRatio' and 'PlotBoxAspectRatio'.
4, 'XDir' can be 'normal' or 'reverse'.
5, 'XScale' can be 'linear' or 'log'.
6, modify axes property by other function like 'axis', 'view', camroll', etc.
Cite As
MinLong Kwong (2024). 3D data space coordinates to normalized figure coordinates conversion (https://www.mathworks.com/matlabcentral/fileexchange/43896-3d-data-space-coordinates-to-normalized-figure-coordinates-conversion), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: Data space to figure units conversion
Inspired: data-explore, ThreeVector
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.