3D data space coordinates to normalized figure coordinates conversion

Like dsxy2figxy or ds2nfu, also work for 3D axes. An utility function to help annotation.

You are now following this Submission

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 (2026). 3D data space coordinates to normalized figure coordinates conversion (https://uk.mathworks.com/matlabcentral/fileexchange/43896-3d-data-space-coordinates-to-normalized-figure-coordinates-conversion), MATLAB Central File Exchange. Retrieved .

Acknowledgements

Inspired by: Data space to figure units conversion

Inspired: data-explore, ThreeVector

Categories

Find more on Interactive Control and Callbacks in Help Center and MATLAB Answers

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.2.0.0

Update description.

1.0.0.0