Quaternion Structure

Définition

Structure qui représente une rotation en trois dimensions.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
Héritage
Quaternion
Attributs
Implémente

Exemples

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

Remarques

Les quaternions vous permettent d’interpoler entre les transformations de rotation appliquées à un objet, ce qui facilite le calcul d’animations lisses de rotations.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Un Quaternion représente un axe de rotation et une rotation autour de cet axe.A quaternion represents an axis of rotation and a rotation around that axis. Il est possible de définir individuellement l’axe et l’angle de rotation des positions de début et de fin d’un objet pivoté, mais les positions intermédiaires de cet objet pendant une animation sont incertaines au niveau du calcul.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. En déterminant un Quaternion qui représente l’orientation d’origine d’un objet 3D et un Quaternion qui représente son orientation de destination, vous pouvez facilement interpoler entre ces orientations.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.

En XAML, le délimiteur entre les valeurs d’un Quaternion peut être une virgule ou un espace.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Certaines cultures peuvent utiliser la virgule comme délimiteur décimal au lieu du point.Some cultures might use the comma character as the decimal delimiter instead of the period character. Le traitement XAML pour la culture dite indifférente est par défaut en-US dans la plupart des implémentations du processeur XAML et s’attend à ce que la période soit le délimiteur décimal.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Vous devez éviter d’utiliser la virgule comme délimiteur décimal si vous spécifiez un Quaternion en XAML, car cela entraînera un conflit avec la conversion de type de chaîne d’une valeur d’attribut Quaternion en ses composants.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.

Utilisation d'attributs XAMLXAML Attribute Usage

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

Valeurs XAMLXAML Values

xx
Composant X de cette structure Quaternion.The X component of this Quaternion structure.

yy
Composant Y de cette structure Quaternion.The Y component of this Quaternion structure.

zz
Composant Z de cette structure Quaternion.The Z component of this Quaternion structure.

ww
Composant W de cette structure Quaternion.The W component of this Quaternion structure.

Constructeurs

Quaternion(Double, Double, Double, Double)

Initialise une nouvelle instance de la structure Quaternion.Initializes a new instance of the Quaternion structure.

Quaternion(Vector3D, Double)

Initialise une nouvelle instance de la structure Quaternion.Initializes a new instance of the Quaternion structure.

Propriétés

Angle

Obtient l'angle du quaternion, en degrés.Gets the quaternion's angle, in degrees.

Axis

Obtient l'axe du quaternion.Gets the quaternion's axis.

Identity

Obtient le quaternion Identity.Gets the Identity quaternion.

IsIdentity

Obtient une valeur qui indique si le quaternion spécifié est un quaternion Identity.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized

Obtient une valeur qui indique si le quaternion est normalisé ou pas.Gets a value that indicates whether the quaternion is normalized.

W

Obtient le composant W du quaternion.Gets the W component of the quaternion.

X

Obtient le composant X du quaternion.Gets the X component of the quaternion.

Y

Obtient le composant Y du quaternion.Gets the Y component of the quaternion.

Z

Obtient le composant Z du quaternion.Gets the Z component of the quaternion.

Méthodes

Add(Quaternion, Quaternion)

Ajoute les quaternions spécifiés.Adds the specified quaternions.

Conjugate()

Remplace un quaternion par son conjugué.Replaces a quaternion with its conjugate.

Equals(Object)

Compare si deux instances Quaternion sont égales.Compares two Quaternion instances for equality.

Equals(Quaternion)

Compare si deux instances Quaternion sont égales.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion)

Compare si deux instances Quaternion sont égales.Compares two Quaternion instances for equality.

GetHashCode()

Retourne le code de hachage pour la Quaternion.Returns the hash code for the Quaternion.

Invert()

Remplace le quaternion spécifié par son inverse.Replaces the specified quaternion with its inverse.

Multiply(Quaternion, Quaternion)

Multiplie les valeurs Quaternion spécifiées.Multiplies the specified Quaternion values.

Normalize()

Renvoie un quaternion normalisé.Returns a normalized quaternion.

Parse(String)

Convertit une représentation sous forme de chaîne de Quaternion en la structure Quaternion équivalente.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double)

Interpole entre deux orientations, en utilisant une interpolation linéaire sphérique.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpole entre des orientations représentées en tant que structures Quaternion en utilisant une interpolation linéaire sphérique.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion)

Soustrait un Quaternion d'un autre.Subtracts a Quaternion from another.

ToString()

Crée une représentation sous forme de chaîne de l'objet.Creates a string representation of the object.

ToString(IFormatProvider)

Crée une représentation sous forme de chaîne de l'objet.Creates a string representation of the object.

Opérateurs

Addition(Quaternion, Quaternion)

Additionne les valeurs Quaternion spécifiées.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion)

Compare l'égalité exacte de deux instances de Quaternion.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion)

Compare l'inégalité exacte de deux instances de Quaternion.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion)

Multiplie le quaternion spécifié par un autre.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion)

Soustrait un quaternion spécifié d'un autre.Subtracts a specified quaternion from another.

Implémentations d’interfaces explicites

IFormattable.ToString(String, IFormatProvider)

Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) et n’est pas destiné à être directement utilisé à partir de votre code.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Pour obtenir une description de ce membre, consultez ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

S’applique à