Quaternion Struct

Definizione

Struttura che rappresenta una rotazione in tre dimensioni.Structure that represents a rotation in three dimensions.

public value class 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]
public struct Quaternion : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
type Quaternion = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
[<System.Serializable>]
type Quaternion = struct
    interface IFormattable
Public Structure Quaternion
Implements IFormattable
Ereditarietà
Quaternion
Attributi
Implementazioni

Esempio

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

Commenti

I quaternioni consentono di eseguire l'interpolazione tra trasformazioni di rotazione applicate a un oggetto, semplificando in tal modo il calcolo di animazioni uniformi delle rotazioni.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Un quaternione rappresenta un asse di rotazione e una rotazione intorno a tale asse.A quaternion represents an axis of rotation and a rotation around that axis. È possibile definire singolarmente l'asse e l'angolo di rotazione delle posizioni iniziali e finali di un oggetto ruotato, ma le posizioni intermedie di tale oggetto durante un'animazione sono incerte dal punto di vista del calcolo.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. Determinando un quaternione che rappresenta l'orientamento originale di un oggetto 3D e uno che rappresenta l'orientamento della destinazione, è possibile interpolare senza problemi tra gli orientamenti.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, il delimitatore tra i valori di un oggetto Quaternion può essere una virgola o uno spazio.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Alcune impostazioni cultura potrebbero utilizzare il carattere virgola come delimitatore decimale anziché il carattere punto.Some cultures might use the comma character as the decimal delimiter instead of the period character. Per impostazione predefinita, l'elaborazione XAML per impostazioni cultura invarianti è en-US nella maggior parte delle implementazioni del processore XAML e prevede che il periodo sia il delimitatore decimale.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. È consigliabile evitare di usare il carattere virgola come delimitatore decimale se si specifica un oggetto Quaternion in XAML, perché questo si scontra con la conversione del tipo di stringa di un Quaternion valore di attributo nei relativi componenti.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.

Uso della sintassi XAML per gli attributiXAML Attribute Usage

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

Valori XAMLXAML Values

xx
Componente X di questa struttura Quaternion.The X component of this Quaternion structure.

yy
Componente Y di questa struttura Quaternion.The Y component of this Quaternion structure.

zz
Componente Z di questa struttura Quaternion.The Z component of this Quaternion structure.

ww
Componente W di questa struttura Quaternion.The W component of this Quaternion structure.

Costruttori

Quaternion(Double, Double, Double, Double)

Inizializza una nuova istanza della struttura Quaternion.Initializes a new instance of the Quaternion structure.

Quaternion(Vector3D, Double)

Inizializza una nuova istanza della struttura Quaternion.Initializes a new instance of the Quaternion structure.

Proprietà

Angle

Ottiene l'angolo del quaternione espresso in gradi.Gets the quaternion's angle, in degrees.

Axis

Ottiene l'asse del quaternione.Gets the quaternion's axis.

Identity

Ottiene la struttura Quaternion di identità.Gets the Identity quaternion.

IsIdentity

Ottiene un valore che indica se il quaternione specificato è un quaternione Identity.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized

Ottiene un valore che indica se il quaternione è normalizzata o meno.Gets a value that indicates whether the quaternion is normalized.

W

Rappresenta il componente W del quaternione.Gets the W component of the quaternion.

X

Ottiene il componente X del quaternione.Gets the X component of the quaternion.

Y

Ottiene il componente Y del quaternione.Gets the Y component of the quaternion.

Z

Ottiene il componente Z del quaternione.Gets the Z component of the quaternion.

Metodi

Add(Quaternion, Quaternion)

Somma i quaternioni specificati.Adds the specified quaternions.

Conjugate()

Sostituisce un quaternione con il relativo coniugato.Replaces a quaternion with its conjugate.

Equals(Object)

Verifica l'uguaglianza tra due istanze di Quaternion.Compares two Quaternion instances for equality.

Equals(Quaternion)

Verifica l'uguaglianza tra due istanze di Quaternion.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion)

Verifica l'uguaglianza tra due istanze di Quaternion.Compares two Quaternion instances for equality.

GetHashCode()

Restituisce il codice hash per la classe Quaternion.Returns the hash code for the Quaternion.

Invert()

Sostituisce il quaternione specificato con l'inverso.Replaces the specified quaternion with its inverse.

Multiply(Quaternion, Quaternion)

Moltiplica i valori Quaternion specificati.Multiplies the specified Quaternion values.

Normalize()

Restituisce un quaternione normalizzato.Returns a normalized quaternion.

Parse(String)

Converte una rappresentazione di stringa di un oggetto Quaternion nella struttura Quaternion equivalente.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double)

Esegue l'interpolazione tra due orientamenti utilizzando l'interpolazione lineare sferica.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean)

Esegue l'interpolazione tra gli orientamenti, rappresentati sotto forma di strutture Quaternion, utilizzando l'interpolazione lineare sferica.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion)

Sottrae un quaternione da un altro quaternione.Subtracts a Quaternion from another.

ToString()

Crea una rappresentazione di stringa dell'oggetto.Creates a string representation of the object.

ToString(IFormatProvider)

Crea una rappresentazione di stringa dell'oggetto.Creates a string representation of the object.

Operatori

Addition(Quaternion, Quaternion)

Aggiunge i valori Quaternion specificati.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion)

Confronta due istanze di Quaternion per stabilire se sono esattamente uguali.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion)

Confronta due istanze della struttura Quaternion per stabilire se sono esattamente diverse.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion)

Moltiplica il quaternione specificato per un altro quaternione.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion)

Sottrae un quaternione specificato da un altro quaternione.Subtracts a specified quaternion from another.

Implementazioni dell'interfaccia esplicita

IFormattable.ToString(String, IFormatProvider)

Questo membro supporta l'infrastruttura di Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Per una descrizione di questo membro, vedere ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Si applica a