Quaternion Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Structure qui représente une rotation en trois dimensions.
public value class Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
public struct Quaternion : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
[<System.Serializable>]
type Quaternion = struct
interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
type Quaternion = struct
interface IFormattable
Public Structure Quaternion
Implements IFormattable
- Héritage
- 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 des animations lisses des rotations. Un quaternion représente un axe de rotation et une rotation autour de cet axe. 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 par calcul. En déterminant un quaternion qui représente l’orientation d’origine d’un objet 3D et un qui représente son orientation de destination, vous pouvez facilement interpoler entre ces orientations.
En XAML, le délimiteur entre les valeurs d’un Quaternion peut être une virgule ou un espace.
Certaines cultures peuvent utiliser le caractère virgule comme délimiteur décimal au lieu du caractère de point. Le traitement XAML pour la culture invariante par défaut est en-US dans la plupart des implémentations de processeur XAML et s’attend à ce que la période soit le délimiteur décimal. Vous devez éviter d’utiliser le caractère virgule comme délimiteur décimal si vous spécifiez un Quaternion code XAML, car cela est en conflit avec la conversion de type chaîne d’une Quaternion valeur d’attribut en ses composants.
Utilisation des attributs XAML
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
Valeurs XAML
x Composant X de cette Quaternion structure.
y Composant Y de cette Quaternion structure.
z Composant Z de cette Quaternion structure.
w Composant W de cette Quaternion structure.
Constructeurs
| Nom | Description |
|---|---|
| Quaternion(Double, Double, Double, Double) |
Initialise une nouvelle instance de la Quaternion structure. |
| Quaternion(Vector3D, Double) |
Initialise une nouvelle instance de la Quaternion structure. |
Propriétés
| Nom | Description |
|---|---|
| Angle |
Obtient l’angle du quaternion, en degrés. |
| Axis |
Obtient l’axe du quaternion. |
| Identity |
Obtient le quaternion d’identité. |
| IsIdentity |
Obtient une valeur qui indique si le quaternion spécifié est un Identity quaternion. |
| IsNormalized |
Obtient une valeur qui indique si le quaternion est normalisé. |
| W |
Obtient le composant W du quaternion. |
| X |
Obtient le composant X du quaternion. |
| Y |
Obtient le composant Y du quaternion. |
| Z |
Obtient le composant Z du quaternion. |
Méthodes
| Nom | Description |
|---|---|
| Add(Quaternion, Quaternion) |
Ajoute les quaternions spécifiés. |
| Conjugate() |
Remplace un quaternion par son conjugue. |
| Equals(Object) |
Compare deux Quaternion instances pour l’égalité. |
| Equals(Quaternion, Quaternion) |
Compare deux Quaternion instances pour l’égalité. |
| Equals(Quaternion) |
Compare deux Quaternion instances pour l’égalité. |
| GetHashCode() |
Retourne le code de hachage pour le Quaternion. |
| Invert() |
Remplace le quaternion spécifié par son inverse. |
| Multiply(Quaternion, Quaternion) |
Multiplie les valeurs spécifiées Quaternion . |
| Normalize() |
Retourne un quaternion normalisé. |
| Parse(String) |
Convertit une représentation sous forme de chaîne d’une Quaternion structure équivalente Quaternion . |
| Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpole entre les orientations, représentées sous forme Quaternion de structures, à l’aide d’une interpolation linéaire sphérique. |
| Slerp(Quaternion, Quaternion, Double) |
Interpole entre deux orientations à l’aide d’interpolation linéaire sphérique. |
| Subtract(Quaternion, Quaternion) |
Soustrait un Quaternion d’un autre. |
| ToString() |
Crée une représentation sous forme de chaîne de l’objet. |
| ToString(IFormatProvider) |
Crée une représentation sous forme de chaîne de l’objet. |
Opérateurs
| Nom | Description |
|---|---|
| Addition(Quaternion, Quaternion) |
Ajoute les valeurs spécifiées Quaternion . |
| Equality(Quaternion, Quaternion) |
Compare deux Quaternion instances pour une égalité exacte. |
| Inequality(Quaternion, Quaternion) |
Compare deux Quaternion instances pour une inégalité exacte. |
| Multiply(Quaternion, Quaternion) |
Multiplie le quaternion spécifié par un autre. |
| Subtraction(Quaternion, Quaternion) |
Soustrait un quaternion spécifié d’un autre. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code. Pour obtenir une description de ce membre, consultez ToString(String, IFormatProvider). |