TRANSFORMS3D Conventions for manipulating 3D affine transforms. By 'transform' we mean an affine transform. A 3D affine transform is represented by a 4*4 matrix. The last row of the matrix is equal to [0 0 0 1]. Example % create a translation by the vector [10 20 30]: T = createTranslation3d([10 20 30]); % Transform a basic point: PT1 = [4 5 6]; PT2 = transformPoint3d(PT1, T) % returns: PT2 = 14 25 36 See also composeTransforms3d, createBasisTransform3d, createRotation3dLineAngle, createRotationAboutPoint3d, createRotationOx, createRotationOy, createRotationOz, createRotationVector3d, createRotationVectorPoint3d, createScaling3d, createTranslation3d, eulerAnglesToRotation3d, fitAffineTransform3d, isTransform3d, recenterTransform3d, rotation3dAxisAndAngle, rotation3dToEulerAngles transformCircle3d, transformLine3d, transformPlane3d, transformPoint3d, transformPolygon3d, transformVector3d
0001 function transforms3d(varargin) 0002 %TRANSFORMS3D Conventions for manipulating 3D affine transforms. 0003 % 0004 % By 'transform' we mean an affine transform. A 3D affine transform 0005 % is represented by a 4*4 matrix. The last row of the matrix is equal to 0006 % [0 0 0 1]. 0007 % 0008 % Example 0009 % % create a translation by the vector [10 20 30]: 0010 % T = createTranslation3d([10 20 30]); 0011 % % Transform a basic point: 0012 % PT1 = [4 5 6]; 0013 % PT2 = transformPoint3d(PT1, T) 0014 % % returns: 0015 % PT2 = 0016 % 14 25 36 0017 % 0018 % See also 0019 % composeTransforms3d, createBasisTransform3d, createRotation3dLineAngle, 0020 % createRotationAboutPoint3d, createRotationOx, createRotationOy, 0021 % createRotationOz, createRotationVector3d, createRotationVectorPoint3d, 0022 % createScaling3d, createTranslation3d, eulerAnglesToRotation3d, 0023 % fitAffineTransform3d, isTransform3d, recenterTransform3d, 0024 % rotation3dAxisAndAngle, rotation3dToEulerAngles 0025 % transformCircle3d, transformLine3d, transformPlane3d, transformPoint3d, 0026 % transformPolygon3d, transformVector3d 0027 % 0028 0029 % ------ 0030 % Author: David Legland 0031 % E-mail: david.legland@inrae.fr 0032 % Created: 2008-10-13, using Matlab 7.4.0.287 (R2007a) 0033 % Copyright 2008-2024 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas