Quaternion Struktura

Definice

Struktura, která představuje otočení ve třech rozměrech.Structure that represents a rotation in three dimensions.

public value class Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable
type Quaternion = struct
    interface IFormattable
Public Structure Quaternion
Implements IFormattable
Dědičnost
Quaternion
Atributy
Implementuje

Příklady

<!-- 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;
'Read new settings
Try
    Dim WValue As Double = Convert.ToDouble(QuaternionWText.Text)
    Dim XValue As Double = Convert.ToDouble(QuaternionXText.Text)
    Dim YValue As Double = Convert.ToDouble(QuaternionYText.Text)
    Dim ZValue As Double = Convert.ToDouble(QuaternionZText.Text)

    endQuaternion = New Quaternion(XValue, YValue, ZValue, WValue)
Catch
    MessageBox.Show("Set non-null values for the quaternion.")
End Try

myQuaternionRotation3D = New QuaternionRotation3D(endQuaternion)
myRotateTransform3D.Rotation = myQuaternionRotation3D

'update matrix display
qrotationMatrix3D = myRotateTransform3D.Value

Poznámky

Kvaternionů vám umožní interpolovat mezi transformacemi rotace použitými u objektu, což usnadňuje výpočet hladkých animací otočení.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Quaternion představuje osu otočení a rotaci kolem osy.A quaternion represents an axis of rotation and a rotation around that axis. Je možné jednotlivě definovat osu a úhel otočení počáteční a koncové pozice otočeného objektu, ale mezilehlé pozice tohoto objektu během animace jsou bez určitých výpočtů.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. Stanovením Quaternion, který představuje původní orientaci 3D objektu a druhý, který představuje svou cílovou orientaci, můžete plynule interpolovat mezi těmito orientacemi.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.

V jazyce XAML může být oddělovač mezi hodnotami Quaternion buď čárkou, nebo mezerou.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Některé kultury můžou místo znaku tečky používat znak čárky jako oddělovač desetinných míst.Some cultures might use the comma character as the decimal delimiter instead of the period character. Zpracování XAML pro invariantní jazykovou verzi má ve většině implementací procesoru XAML hodnotu en-US a očekává, že období bude mít oddělovač desetinných míst.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Nepoužívejte znak čárky jako oddělovač desetinných míst při určení Quaternion v jazyce XAML, protože to bude v konfliktu s převodem řetězcového typu hodnoty atributu Quaternion na jeho komponenty.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.

Použití atributu XAMLXAML Attribute Usage

<object property="x,y,z,w"/>  
-or-  
<object property="x y z w"/>  

Hodnoty XAMLXAML Values

znakx
Komponenta X této struktury Quaternion.The X component of this Quaternion structure.

požadovanéy
Komponenta Y této struktury Quaternion.The Y component of this Quaternion structure.

odz
Komponenta Z této struktury Quaternion.The Z component of this Quaternion structure.

ww
Komponenta W této struktury Quaternion.The W component of this Quaternion structure.

Konstruktory

Quaternion(Double, Double, Double, Double)

Inicializuje novou instanci Quaternion struktury.Initializes a new instance of the Quaternion structure.

Quaternion(Vector3D, Double)

Inicializuje novou instanci Quaternion struktury.Initializes a new instance of the Quaternion structure.

Vlastnosti

Angle

Získá úhel Quaternion ve stupních.Gets the quaternion's angle, in degrees.

Axis

Získá osu Quaternion.Gets the quaternion's axis.

Identity

Získá Quaternion identity.Gets the Identity quaternion.

IsIdentity

Získá hodnotu, která označuje, zda je zadaný quaternion Identity Quaternion.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized

Získá hodnotu, která označuje, zda je Quaternion normalizován.Gets a value that indicates whether the quaternion is normalized.

W

Získá komponentu W rozhraní Quaternion.Gets the W component of the quaternion.

X

Získá komponentu X rozhraní Quaternion.Gets the X component of the quaternion.

Y

Získá komponentu Y v Quaternion.Gets the Y component of the quaternion.

Z

Získá komponentu Z Quaternion.Gets the Z component of the quaternion.

Metody

Add(Quaternion, Quaternion)

Přidá zadaný kvaternionů.Adds the specified quaternions.

Conjugate()

Nahradí Quaternion svým sdruženým.Replaces a quaternion with its conjugate.

Equals(Object)

Porovná dvě instance Quaternion pro rovnost.Compares two Quaternion instances for equality.

Equals(Quaternion)

Porovná dvě instance Quaternion pro rovnost.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion)

Porovná dvě instance Quaternion pro rovnost.Compares two Quaternion instances for equality.

GetHashCode()

Vrátí hodnotu hash Quaternion.Returns the hash code for the Quaternion.

Invert()

Nahradí zadaný quaternion svým parametrem Inverted.Replaces the specified quaternion with its inverse.

Multiply(Quaternion, Quaternion)

Vynásobí zadané hodnoty Quaternion.Multiplies the specified Quaternion values.

Normalize()

Vrátí normalizovanou Quaternion.Returns a normalized quaternion.

Parse(String)

Převede řetězcové vyjádření Quaternion do ekvivalentní Quaternion struktury.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double)

Interpoluje dvě orientace pomocí kulové lineární interpolace.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpoluje mezi orientacemi, které jsou reprezentovány jako Quaternion struktury, pomocí kulové lineární interpolace.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion)

Odečte Quaternion od jiného.Subtracts a Quaternion from another.

ToString()

Vytvoří řetězcovou reprezentaci objektu.Creates a string representation of the object.

ToString(IFormatProvider)

Vytvoří řetězcovou reprezentaci objektu.Creates a string representation of the object.

Operátory

Addition(Quaternion, Quaternion)

Přidá zadané hodnoty Quaternion.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion)

Porovná dvě instance Quaternion pro přesnější rovnost.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion)

Porovná dvě instance Quaternion pro přesné nerovnost.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion)

Vynásobí zadaný quaternion jiným.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion)

Odečte zadaný quaternion od jiného.Subtracts a specified quaternion from another.

Explicitní implementace rozhraní

IFormattable.ToString(String, IFormatProvider)

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) a není určen pro použití přímo v kódu.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Popis tohoto člena naleznete v tématu ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Platí pro