Quaternion Structure
Structure that represents a rotation in three dimensions.
Assembly: PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
The Quaternion type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Quaternion(Vector3D, Double) | Initializes a new instance of the Quaternion structure. |
![]() | Quaternion(Double, Double, Double, 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 | 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 | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Invert | Replaces the specified quaternion with its inverse |
![]() ![]() | Multiply | Multiplies the specified Quaternion values. |
![]() | Normalize | Returns a normalized quaternion. |
![]() ![]() | Parse | 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 | 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 | Adds the specified Quaternion values. |
![]() ![]() | Equality | Compares two Quaternion instances for exact equality. |
![]() ![]() | Inequality | Compares two Quaternion instances for exact inequality. |
![]() ![]() | Multiply | Multiplies the specified quaternion by another. |
![]() ![]() | Subtraction | Subtracts a specified quaternion from another. |
| Name | Description | |
|---|---|---|
![]() ![]() | IFormattable.ToString | 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.
<!-- 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>
//Read new settings try { Double WValue = System.Convert.ToDouble(QuaternionWText.Text); Double XValue = System.Convert.ToDouble(QuaternionXText.Text); Double YValue = System.Convert.ToDouble(QuaternionYText.Text); Double ZValue = System.Convert.ToDouble(QuaternionZText.Text); endQuaternion = new Quaternion(XValue, YValue, ZValue, WValue); } catch { MessageBox.Show("Set non-null values for the quaternion."); } myQuaternionRotation3D = new QuaternionRotation3D(endQuaternion); myRotateTransform3D.Rotation = myQuaternionRotation3D; //update matrix display qrotationMatrix3D = myRotateTransform3D.Value;
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
