3D Rotation about Shifted Axis
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 (2024). 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
Platform Compatibility
Windows macOS LinuxCategories
- Image Processing and Computer Vision > Image Processing Toolbox > Geometric Transformation and Image Registration >
- MATLAB > Graphics > Formatting and Annotation > 3-D Scene Control >
Tags
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.