Quaternion Quaternion Quaternion 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))]
[System.Serializable]
public struct Quaternion : IFormattable
type Quaternion = struct
    interface IFormattable
Public Structure Quaternion
Implements IFormattable
Ereditarietà
QuaternionQuaternionQuaternionQuaternion
Attributi
Implementazioni

Esempi

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

Quaternioni consentono di eseguire l'interpolazione tra trasformazioni di rotazione applicate a un oggetto, rendendo più semplice calcolare animazioni fluide 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 all'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 iniziale e finale di un oggetto ruotata, ma le posizioni intermedie di quell'oggetto durante un'animazione dubbi calcoli complessi.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. Determinare prima di tutto un quaternione che rappresenta l'orientamento originale di un oggetto 3D e uno che rappresenta l'orientamento di destinazione, è possibile in modo uniforme interpolare 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 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 potrebbe usare la virgola come delimitatore decimale anziché il carattere punto.Some cultures might use the comma character as the decimal delimiter instead of the period character. XAML di elaborazione per impostazioni cultura invarianti en-US nella maggior parte delle implementazioni del processore XAML per impostazione predefinita e prevede che il periodo di 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. Evitare di usare la virgola come delimitatore decimale Se si specifica un Quaternion in XAML, per evitare conflitti con la conversione di tipo stringa di un Quaternion valore dell'attributo nei suoi 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(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double)

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

Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double)

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

Proprietà

Angle Angle Angle Angle

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

Axis Axis Axis Axis

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

Identity Identity Identity Identity

Ottiene il quaternione identitàGets the Identity quaternion

IsIdentity IsIdentity IsIdentity IsIdentity

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

IsNormalized IsNormalized IsNormalized IsNormalized

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

W W W W

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

X X X X

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

Y Y Y Y

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

Z Z Z Z

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

Metodi

Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion)

Somma i quaternioni specificati.Adds the specified quaternions.

Conjugate() Conjugate() Conjugate() Conjugate()

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

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

Equals(Quaternion) Equals(Quaternion) Equals(Quaternion) Equals(Quaternion)

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

Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion)

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

Invert() Invert() Invert() Invert()

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

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

Moltiplica la Quaternion valori.Multiplies the specified Quaternion values.

Normalize() Normalize() Normalize() Normalize()

Restituisce un quaternione normalizzato.Returns a normalized quaternion.

Parse(String) Parse(String) Parse(String) Parse(String)

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

Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double)

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

Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean)

Crea un'interpolazione tra gli orientamenti, rappresentati come Quaternion strutture, usando l'interpolazione lineare sferica.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion)

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

ToString() ToString() ToString() ToString()

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

ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider)

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

Operatori

Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion)

Aggiunge l'oggetto Quaternion valori.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion)

Confronta due Quaternion istanze per verificarne l'esatta uguaglianza.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion)

Confronta due Quaternion istanze per verificarne la disuguaglianza esatta.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

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

Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion)

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

Implementazioni dell'interfaccia esplicita

IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) 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