Quaternion Structure |
The first value a is the real part, while the rest multiplies i, j and k, that are imaginary.
quaternion = a + bi + cj + dk
Namespace: Rhino.Geometry
The Quaternion type exposes the following members.
Name | Description | |
---|---|---|
![]() | Quaternion |
Initializes a new quaternion with the provided coefficients.
|
Name | Description | |
---|---|---|
![]() | A |
Gets or sets the real part of the quaternion.
|
![]() | B |
Gets or sets the first imaginary coefficient of the quaternion.
|
![]() | C |
Gets or sets the second imaginary coefficient of the quaternion.
|
![]() | Conjugate |
Gets a new quaternion that is the conjugate of this quaternion.
This is (a,-b,-c,-d) |
![]() | D |
Gets or sets the third imaginary coefficient of the quaternion.
|
![]() ![]() | I |
Returns the (0,1,0,0) quaternion.
|
![]() ![]() | Identity |
Returns the (1,0,0,0) quaternion.
|
![]() | Inverse |
Computes a new inverted quaternion,
(a/L2, -b/L2, -c/L2, -d/L2), where L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). If this is the zero quaternion, then the zero quaternion is returned. |
![]() | IsScalar |
true if b, c, and d are all zero.
|
![]() | IsValid |
Determines if the four coefficients are valid numbers within RhinoCommon.
|
![]() | IsVector |
true if a = 0 and at least one of b, c, or d is not zero.
|
![]() | IsZero |
true if a, b, c, and d are all zero.
|
![]() ![]() | J |
Returns the (0,0,1,0) quaternion.
|
![]() ![]() | K |
Returns the (0,0,0,1) quaternion.
|
![]() | Length |
Returns the length or norm of the quaternion.
|
![]() | LengthSquared |
Gets the result of (a^2 + b^2 + c^2 + d^2).
|
![]() | Scalar |
The real (scalar) part of the quaternion
This is A. |
![]() | Vector |
The imaginary part of the quaternion
(B,C,D) |
![]() ![]() | Zero |
Returns the default quaternion, where all coefficients are 0.
|
Name | Description | |
---|---|---|
![]() ![]() | CreateFromRotationZYX |
Constructs a quaternion defined by Tait-Byran angles, also loosely known as Euler angles.
|
![]() ![]() | CreateFromRotationZYZ |
Constructs a quaternion defined by Euler angles.
|
![]() ![]() | CrossProduct |
Computes the vector cross product of p and q = (0,x,y,z),
where (x,y,z) = CrossProduct(p.Vector,q.Vector). This is not the same as the quaternion product p*q. |
![]() ![]() | Distance |
Returns the distance or norm of the difference between two quaternions.
|
![]() | DistanceTo |
Computes the distance or norm of the difference between this and another quaternion.
|
![]() | EpsilonEquals |
Check that all values in other are within epsilon of the values in this
|
![]() | Equals(Object) |
Determines whether an object is a quaternion and has the same value of this quaternion.
(Overrides ValueTypeEquals(Object).) |
![]() | Equals(Quaternion) |
Determines whether this quaternion has the same value of another quaternion.
|
![]() | GetEulerZYZ |
Find the Euler angles for a rotation transformation.
|
![]() | GetHashCode |
Gets a non-unique but repeatable hashing code for this quaternion.
(Overrides ValueTypeGetHashCode.) |
![]() | GetRotation(Plane) |
Returns the frame created by applying the quaternion's rotation
to the canonical world frame (1,0,0),(0,1,0),(0,0,1).
|
![]() | GetRotation(Transform) |
Returns a transformation matrix that performs the rotation defined by the quaternion.
The transformation returned by this method has the property that xform * V = q.Rotate(V).
If the quaternion is not unitized, the rotation of its unitized form is returned.
|
![]() | GetRotation(Double, Vector3d) |
Returns the rotation defined by the quaternion.
|
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetYawPitchRoll |
Find sthe Tait-Byran angles, also loosely called Euler angles, for this quaternion.
|
![]() | Invert |
Modifies this quaternion to become
(a/L2, -b/L2, -c/L2, -d/L2), where L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). |
![]() ![]() | Lerp |
Interpolates between two quaternions, using linear interpolation.
|
![]() | MatrixForm |
Returns 4x4 real valued matrix form of the quaternion
a b c d
-b a -d c
-c d a -b
-d -c b a
which has the same arithmetic properties as the quaternion.
|
![]() ![]() | Product |
The quaternion product of p and q. This is the same value as p*q.
|
![]() | Rotate |
Rotates a 3d vector. This operation is also called conjugation,
because the result is the same as
(q.Conjugate()*(0,x,y,x)*q/q.LengthSquared).Vector.
|
![]() ![]() | RotateTowards |
Returns the quaternion obtained by rotating a towards b, limiting the rotation by MaxRadians.
|
![]() ![]() | Rotation(Double, Vector3d) |
Returns the unit quaternion
cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z
where (x,y,z) is the unit vector parallel to axis. This is the
unit quaternion that represents the rotation of angle about axis.
|
![]() ![]() | Rotation(Plane, Plane) |
Returns the unit quaternion that represents the rotation that maps
plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and
plane0.zaxis to plane1.zaxis.
|
![]() | Set |
Sets all coefficients of the quaternion.
|
![]() | SetRotation(Double, Vector3d) |
Sets the quaternion to cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z
where (x,y,z) is the unit vector parallel to axis. This is the unit quaternion
that represents the rotation of angle about axis.
|
![]() | SetRotation(Plane, Plane) |
Sets the quaternion to the unit quaternion which rotates
plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis,
and plane0.zaxis to plane1.zaxis.
|
![]() ![]() | Slerp |
Interpolates between two quaternions, using spherical linear interpolation.
|
![]() | ToString |
Returns a string representation of this Quaternion.
(Overrides ValueTypeToString.) |
![]() | Unitize |
Scales the quaternion's coordinates so that a*a + b*b + c*c + d*d = 1.
|
Name | Description | |
---|---|---|
![]() ![]() | Addition |
Adds two quaternions.
This sums each quaternion coefficient with its correspondent and returns a new result quaternion. |
![]() ![]() | Division |
Divides all quaternion coefficients by a factor and returns a new quaternion with the result.
|
![]() ![]() | Equality |
Determines whether two quaternions have the same value.
|
![]() ![]() | Inequality |
Determines whether two quaternions have different values.
|
![]() ![]() | Multiply(Quaternion, Quaternion) |
Multiplies a quaternion with another one.
Quaternion multiplication (Hamilton product) is not commutative. |
![]() ![]() | Multiply(Quaternion, Double) |
Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.
|
![]() ![]() | Multiply(Quaternion, Int32) |
Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.
|
![]() ![]() | Multiply(Quaternion, Single) |
Multiplies (scales) all quaternion coefficients by a factor and returns a new quaternion with the result.
|
![]() ![]() | Subtraction |
Subtracts a quaternion from another one.
This computes the difference of each quaternion coefficient with its correspondent and returns a new result quaternion. |