Quaternion Structure
Structure that represents a rotation in three dimensions.
Assembly: PresentationCore (in PresentationCore.dll)
| Name | Description | |
|---|---|---|
![]() | Quaternion(Double, Double, Double, Double) | Initializes a new instance of the Quaternion structure. |
![]() | Quaternion(Vector3D, Double) | Initializes a new instance of the Quaternion structure. |
| Name | Description | |
|---|---|---|
![]() | Angle | Gets the quaternion's angle, in degrees. |
![]() | Axis | Gets the quaternion's axis. |
![]() ![]() | Identity | Gets the Identity quaternion |
![]() | IsIdentity | Gets a value that indicates whether the specified quaternion is an Identity quaternion. |
![]() | IsNormalized | Gets a value that indicates whether the quaternion is normalized. |
![]() | W | Gets the W component of the quaternion. |
![]() | X | Gets the X component of the quaternion. |
![]() | Y | Gets the Y component of the quaternion. |
![]() | Z | Gets the Z component of the quaternion. |
| Name | Description | |
|---|---|---|
![]() ![]() | Add(Quaternion, Quaternion) | Adds the specified quaternions. |
![]() | Conjugate() | Replaces a quaternion with its conjugate. |
![]() | Equals(Object^) | Compares two Quaternion instances for equality. (Overrides ValueType::Equals(Object^).) |
![]() | Equals(Quaternion) | Compares two Quaternion instances for equality. |
![]() ![]() | Equals(Quaternion, Quaternion) | Compares two Quaternion instances for equality. |
![]() | GetHashCode() | Returns the hash code for the Quaternion. (Overrides ValueType::GetHashCode().) |
![]() | GetType() | |
![]() | Invert() | Replaces the specified quaternion with its inverse |
![]() ![]() | Multiply(Quaternion, Quaternion) | Multiplies the specified Quaternion values. |
![]() | Normalize() | Returns a normalized quaternion. |
![]() ![]() | Parse(String^) | Converts a string representation of a Quaternion into the equivalent Quaternion structure. |
![]() ![]() | Slerp(Quaternion, Quaternion, Double) | Interpolates between two orientations using spherical linear interpolation. |
![]() ![]() | Slerp(Quaternion, Quaternion, Double, Boolean) | Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation. |
![]() ![]() | Subtract(Quaternion, Quaternion) | Subtracts a Quaternion from another. |
![]() | ToString() | Creates a string representation of the object. (Overrides ValueType::ToString().) |
![]() | ToString(IFormatProvider^) | Creates a string representation of the object. |
| Name | Description | |
|---|---|---|
![]() ![]() | Addition(Quaternion, Quaternion) | Adds the specified Quaternion values. |
![]() ![]() | Equality(Quaternion, Quaternion) | Compares two Quaternion instances for exact equality. |
![]() ![]() | Inequality(Quaternion, Quaternion) | Compares two Quaternion instances for exact inequality. |
![]() ![]() | Multiply(Quaternion, Quaternion) | Multiplies the specified quaternion by another. |
![]() ![]() | Subtraction(Quaternion, Quaternion) | Subtracts a specified quaternion from another. |
| Name | Description | |
|---|---|---|
![]() ![]() | IFormattable::ToString(String^, IFormatProvider^) | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. For a description of this member, see ToString. |
Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. A quaternion represents an axis of rotation and a rotation around that axis. It's possible to individually define the axis and angle of rotation of the starting and ending positions of a rotated object ,but the intermediate positions of that object during an animation are computationally uncertain. By determining a quaternion that represents the original orientation of a 3-D object and one that represents its destination orientation, you can smoothly interpolate between those orientations.
In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.
Some cultures might use the comma character as the decimal delimiter instead of the period character. XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. You should avoid using the comma character as the decimal delimiter if specifying a Quaternion in XAML, because that will clash with the string type conversion of a Quaternion attribute value into its components.
<object property="x,y,z,w"/> -or- <object property="x y z w"/>
<!-- Trigger the rotation animation when the 3D object loads. --> <Viewport3D.Triggers> <EventTrigger RoutedEvent="Viewport3D.Loaded"> <BeginStoryboard> <Storyboard> <!-- This animation animates the Rotation property of the RotateTransform3D causing the 3D shape to rotate. --> <QuaternionAnimation Storyboard.TargetName="myQuaternionRotation3D" Storyboard.TargetProperty="Quaternion" From="0,0,1,0" To="0.3, 0.3, 1, 0" Duration="0:0:2" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Viewport3D.Triggers>
Available since 3.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





