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. |