3D Rotation about Shifted Axis

Version 1.3.0.1 (2.42 KB) by Matt J
Computes/applies rotation about arbitrary 3D line.
6.7K Downloads
Updated 4 Apr 2021

View License

Generates the roto-translation matrix for the rotation around an arbitrary line in 3D. The line need not pass through the origin. Optionally, also, applies this transformation to a list of 3D coordinates.

SYNTAX 1:

M=AxelRot(deg,u,x0)


in:

u, x0: 3D vectors specifying the line in parametric form x(t)=x0+t*u
Default for x0 is [0,0,0] corresponding to pure rotation (no shift).
If x0=[] is passed as input, this is also equivalent to passing x0=[0,0,0].

deg: The counter-clockwise rotation angle about the line in degrees. Counter-clockwise is defined using the
right hand rule with respect to the line direction vector u.


out:

M: A 4x4 affine transformation matrix representing
the roto-translation. Namely, M will have the form

M=[R,t;0 0 0 1]

where R is a 3x3 rotation and t is a 3x1 translation vector.



SYNTAX 2:

[R,t]=AxelRot(deg,u,x0)

Same as Syntax 1 except that R and t are returned as separate arguments.



SYNTAX 3:

This syntax requires 4 input arguments be specified,

[XYZnew, R, t] = AxelRot(XYZold, deg, u, x0)

where the columns of the 3xN matrix XYZold specify a set of N points in 3D space. The output XYZnew is a 3xN matrix of transformed points, i.e., the input points rotated about the axis. All other input/output arguments have the same meanings as before.

Cite As

Matt J (2026). 3D Rotation about Shifted Axis (https://www.mathworks.com/matlabcentral/fileexchange/30864-3d-rotation-about-shifted-axis), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.3.0.1

Description clarifications.

1.3.0.0

Added option to transform a set of coordinates.

1.1.0.0

Clarified description and help doc only. No new code.

1.0.0.0