Class ConvertRotation3D_F64
- java.lang.Object
-
- georegression.geometry.ConvertRotation3D_F64
-
public class ConvertRotation3D_F64 extends java.lang.ObjectProvides functions to convert between different parameterizations of 3D rotation matrices.
-
-
Constructor Summary
Constructors Constructor and Description ConvertRotation3D_F64()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static org.ejml.data.DenseMatrix64FapproximateRotationMatrix(org.ejml.data.DenseMatrix64F orig, org.ejml.data.DenseMatrix64F R)Finds a rotation matrix which is the optimal approximation to an arbitrary 3 by 3 matrix.static org.ejml.data.DenseMatrix64FeulerToMatrix(EulerType type, double rotA, double rotB, double rotC, org.ejml.data.DenseMatrix64F R)Converts an Euler coordinate into a rotation matrix.static Quaternion_F64eulerToQuaternion(EulerType type, double rotA, double rotB, double rotC, Quaternion_F64 q)static double[]matrixToEuler(org.ejml.data.DenseMatrix64F R, EulerType type, double[] euler)Converts a rotation matrix into an Euler angle of different typesstatic Quaternion_F64matrixToQuaternion(org.ejml.data.DenseMatrix64F R, Quaternion_F64 quat)Extracts quaternions from the provided rotation matrix.static Rodrigues_F64matrixToRodrigues(org.ejml.data.DenseMatrix64F R, Rodrigues_F64 rodrigues)Converts a rotation matrix intoRodrigues_F64.static double[]quaternionToEuler(Quaternion_F64 q, EulerType type, double[] euler)Converts a quaternion into an euler rotation of different typesstatic org.ejml.data.DenseMatrix64FquaternionToMatrix(Quaternion_F64 quat, org.ejml.data.DenseMatrix64F R)Converts a unit quaternion into a rotation matrix.static Rodrigues_F64quaternionToRodrigues(Quaternion_F64 quat, Rodrigues_F64 rodrigues)Converts a unitQuaternion_F64intoRodrigues_F64.static double[]rodriguesToEuler(Rodrigues_F64 rodrigues, EulerType type, double[] euler)ConvertsRodrigues_F64into an euler rotation of different typesstatic org.ejml.data.DenseMatrix64FrodriguesToMatrix(Rodrigues_F64 rodrigues, org.ejml.data.DenseMatrix64F R)ConvertsRodrigues_F64into a rotation matrix.static Quaternion_F64rodriguesToQuaternion(Rodrigues_F64 rodrigues, Quaternion_F64 quat)ConvertsRodrigues_F64into a unitQuaternion_F64.static org.ejml.data.DenseMatrix64FrotX(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the x-axis.static org.ejml.data.DenseMatrix64FrotY(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the y-axis.static org.ejml.data.DenseMatrix64FrotZ(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the z-axis.static voidsetRotX(double ang, org.ejml.data.DenseMatrix64F R)Sets the values in the specified matrix to a rotation matrix about the x-axis.static voidsetRotY(double ang, org.ejml.data.DenseMatrix64F r)Sets the values in the specified matrix to a rotation matrix about the y-axis.static voidsetRotZ(double ang, org.ejml.data.DenseMatrix64F r)Sets the values in the specified matrix to a rotation matrix about the z-axis.
-
-
-
Method Detail
-
rodriguesToMatrix
public static org.ejml.data.DenseMatrix64F rodriguesToMatrix(Rodrigues_F64 rodrigues, org.ejml.data.DenseMatrix64F R)
ConvertsRodrigues_F64into a rotation matrix.- Parameters:
rodrigues- rotation defined using rotation axis angle notation.R- where the results will be stored. If null a new matrix is declared/- Returns:
- rotation matrix.
-
rodriguesToEuler
public static double[] rodriguesToEuler(Rodrigues_F64 rodrigues, EulerType type, double[] euler)
Converts
Rodrigues_F64into an euler rotation of different types- Parameters:
rodrigues- rotation defined using rotation axis angle notation.type- Type of Euler rotationeuler- (Output) Optional storage for Euler rotation- Returns:
- The Euler rotation.
-
rodriguesToQuaternion
public static Quaternion_F64 rodriguesToQuaternion(Rodrigues_F64 rodrigues, Quaternion_F64 quat)
Converts
Rodrigues_F64into a unitQuaternion_F64.- Parameters:
rodrigues- The angle of rotation around the rotation axis.quat- Storage for quaternion coordinate. If null a new quaternion is created. Modified.- Returns:
- unit quaternion coordinate.
-
quaternionToRodrigues
public static Rodrigues_F64 quaternionToRodrigues(Quaternion_F64 quat, Rodrigues_F64 rodrigues)
Converts a unitQuaternion_F64intoRodrigues_F64.- Parameters:
quat- (Input) Unit quaternionrodrigues- (Optional) Storage for rodrigues coodinate. If null a new instance is created.- Returns:
- rodrigues
-
quaternionToEuler
public static double[] quaternionToEuler(Quaternion_F64 q, EulerType type, double[] euler)
Converts a quaternion into an euler rotation of different types
- Parameters:
q- (Input) Normalized quaternion. Not modified.type- Type of Euler rotationeuler- (Output) Optional storage for Euler rotation- Returns:
- The Euler rotation.
-
matrixToEuler
public static double[] matrixToEuler(org.ejml.data.DenseMatrix64F R, EulerType type, double[] euler)Converts a rotation matrix into an Euler angle of different types
- Parameters:
R- (Input) Rotation matrix. Not modified.type- Type of Euler rotationeuler- (Output) Optional storage for Euler rotation- Returns:
- The Euler rotation.
-
matrixToQuaternion
public static Quaternion_F64 matrixToQuaternion(org.ejml.data.DenseMatrix64F R, Quaternion_F64 quat)
Extracts quaternions from the provided rotation matrix.- Parameters:
R- (Input) rotation matrixquat- (Output) Optional storage for quaternion. If null a new class will be used.- Returns:
- unit quaternion representation of the rotation matrix.
-
matrixToRodrigues
public static Rodrigues_F64 matrixToRodrigues(org.ejml.data.DenseMatrix64F R, Rodrigues_F64 rodrigues)
Converts a rotation matrix intoRodrigues_F64.- Parameters:
R- Rotation matrix.rodrigues- Storage used for solution. If null a new instance is declared.- Returns:
- The found axis and rotation angle.
-
rotX
public static org.ejml.data.DenseMatrix64F rotX(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the x-axis.- Parameters:
ang- the angle it rotates a point by in radians.R- (Output) Optional storage for rotation matrix. Modified.- Returns:
- The 3 by 3 rotation matrix.
-
setRotX
public static void setRotX(double ang, org.ejml.data.DenseMatrix64F R)Sets the values in the specified matrix to a rotation matrix about the x-axis.- Parameters:
ang- the angle it rotates a point by in radians.R- (Output) Storage for rotation matrix. Modified.
-
rotY
public static org.ejml.data.DenseMatrix64F rotY(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the y-axis.- Parameters:
ang- the angle it rotates a point by in radians.R- (Output) Optional storage for rotation matrix. Modified.- Returns:
- The 3 by 3 rotation matrix.
-
setRotY
public static void setRotY(double ang, org.ejml.data.DenseMatrix64F r)Sets the values in the specified matrix to a rotation matrix about the y-axis.- Parameters:
ang- the angle it rotates a point by in radians.r- A 3 by 3 matrix. Is modified.
-
rotZ
public static org.ejml.data.DenseMatrix64F rotZ(double ang, org.ejml.data.DenseMatrix64F R)Creates a rotation matrix about the z-axis.- Parameters:
ang- the angle it rotates a point by in radians.R- (Output) Optional storage for rotation matrix. Modified.- Returns:
- The 3 by 3 rotation matrix.
-
setRotZ
public static void setRotZ(double ang, org.ejml.data.DenseMatrix64F r)Sets the values in the specified matrix to a rotation matrix about the z-axis.- Parameters:
ang- the angle it rotates a point by in radians.r- A 3 by 3 matrix. Is modified.
-
eulerToMatrix
public static org.ejml.data.DenseMatrix64F eulerToMatrix(EulerType type, double rotA, double rotB, double rotC, org.ejml.data.DenseMatrix64F R)
Converts an Euler coordinate into a rotation matrix. Different type of Euler coordinates are accepted.- Parameters:
type- Which Euler coordinate is the input inrotA- Angle of rotation around axis A. First rotationrotB- Angle of rotation around axis B Second rotationrotC- Angle of rotation around axis C Third rotationR- (Output) Optional storage for output rotation matrix- Returns:
- Rotation matrix
-
eulerToQuaternion
public static Quaternion_F64 eulerToQuaternion(EulerType type, double rotA, double rotB, double rotC, Quaternion_F64 q)
-
approximateRotationMatrix
public static org.ejml.data.DenseMatrix64F approximateRotationMatrix(org.ejml.data.DenseMatrix64F orig, org.ejml.data.DenseMatrix64F R)Finds a rotation matrix which is the optimal approximation to an arbitrary 3 by 3 matrix. Optimality is specified by the equation below:
min ||R-Q||2F
R
where R is the rotation matrix and Q is the matrix being approximated.The technique used is based on SVD and is described in Appendix C of "A Flexible New Technique for Camera Calibration" Technical Report, updated 2002.
Both origin and R can be the same instance.
- Parameters:
orig- Input approximate rotation matrix. Not modified.R- (Optional) Storage for the approximated rotation matrix. Modified.- Returns:
- Rotation matrix
-
quaternionToMatrix
public static org.ejml.data.DenseMatrix64F quaternionToMatrix(Quaternion_F64 quat, org.ejml.data.DenseMatrix64F R)
Converts a unit quaternion into a rotation matrix.
Equations is taken from: Paul J. Besl and Neil D. McKay, "A Method for Registration of 3-D Shapes" IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 2, Feb. 1992
- Parameters:
quat- Unit quaternion.R- Storage for rotation matrix. If null a new matrix is created. Modified.- Returns:
- Rotation matrix
-
-
DataMelt 3.0 © DataMelt by jWork.ORG