Quaternion Struktura

Definicja

Struktura, która reprezentuje obrót w trzech wymiarach.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
Dziedziczenie
Quaternion
Atrybuty
Implementuje

Przykłady

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

Uwagi

Kwaternionów umożliwiają interpolację między przekształceniami rotacji zastosowanymi do obiektu, dzięki czemu łatwiej jest obliczać płynne animacje obrotu.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Quaternion reprezentuje oś obrotu i obrót wokół tej osi.A quaternion represents an axis of rotation and a rotation around that axis. Istnieje możliwość indywidualnego zdefiniowania osi i kąta obrotu położenia początkowego i końcowego obiektu obróconego, ale pośrednie pozycje tego obiektu podczas animacji są w sposób nieokreślony.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. Określając Quaternion, który reprezentuje oryginalną orientację obiektu 3-D i jeden, który reprezentuje orientację miejsca docelowego, można płynnie interpolować między tymi orientacjami.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.

W języku XAML ogranicznik między wartościami Quaternion może być przecinkiem lub spacją.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Niektóre kultury mogą używać znaku przecinka jako ogranicznika dziesiętnego zamiast znaku kropki.Some cultures might use the comma character as the decimal delimiter instead of the period character. Przetwarzanie XAML dla niezmiennej kultury Defaults ma wartość pl-US w większości implementacji procesora XAML i oczekuje, że kropka jest ogranicznikiem dziesiętnym.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Należy unikać używania znaku przecinka jako ogranicznika dziesiętnego, jeśli określono Quaternion w języku XAML, ponieważ spowoduje to konflikt z konwersją typu String wartości atrybutu Quaternion do jego składników.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.

Użycie atrybutu języka XAMLXAML Attribute Usage

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

Wartości XAMLXAML Values

yx
Składnik X tej struktury Quaternion.The X component of this Quaternion structure.

ty
Składnik Y tej struktury Quaternion.The Y component of this Quaternion structure.

porządkuz
Składnik Z tej struktury Quaternion.The Z component of this Quaternion structure.

kw
Składnik W tej struktury Quaternion.The W component of this Quaternion structure.

Konstruktory

Quaternion(Double, Double, Double, Double)

Inicjuje nowe wystąpienie struktury Quaternion.Initializes a new instance of the Quaternion structure.

Quaternion(Vector3D, Double)

Inicjuje nowe wystąpienie struktury Quaternion.Initializes a new instance of the Quaternion structure.

Właściwości

Angle

Pobiera kąt Quaternion (w stopniach).Gets the quaternion's angle, in degrees.

Axis

Pobiera oś quaternion.Gets the quaternion's axis.

Identity

Pobiera Quaternion tożsamości.Gets the Identity quaternion.

IsIdentity

Pobiera wartość wskazującą, czy określony quaternion jest elementem Identity quaternion.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized

Pobiera wartość wskazującą, czy quaternion jest znormalizowana.Gets a value that indicates whether the quaternion is normalized.

W

Pobiera składnik W quaternion.Gets the W component of the quaternion.

X

Pobiera składnik X quaternion.Gets the X component of the quaternion.

Y

Pobiera składnik Y quaternion.Gets the Y component of the quaternion.

Z

Pobiera składnik z quaternion.Gets the Z component of the quaternion.

Metody

Add(Quaternion, Quaternion)

Dodaje określony kwaternionów.Adds the specified quaternions.

Conjugate()

Zastępuje Quaternion z jego sprzężeniem.Replaces a quaternion with its conjugate.

Equals(Object)

Porównuje dwa wystąpienia Quaternion dla równości.Compares two Quaternion instances for equality.

Equals(Quaternion)

Porównuje dwa wystąpienia Quaternion dla równości.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion)

Porównuje dwa wystąpienia Quaternion dla równości.Compares two Quaternion instances for equality.

GetHashCode()

Zwraca kod skrótu dla Quaternion.Returns the hash code for the Quaternion.

Invert()

Zastępuje określony Quaternion z jego odwrotnością.Replaces the specified quaternion with its inverse.

Multiply(Quaternion, Quaternion)

Mnoży określone wartości Quaternion.Multiplies the specified Quaternion values.

Normalize()

Zwraca znormalizowany quaternion.Returns a normalized quaternion.

Parse(String)

Konwertuje ciąg reprezentujący Quaternion w równoważną strukturę Quaternion.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double)

Interpoluje między dwiema orientacjami przy użyciu interpolacji liniowej sferycznej.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpoluje między orientacjami, reprezentowane jako struktury Quaternion, przy użyciu interpolacji liniowej sferycznej.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion)

Odejmuje Quaternion z innego.Subtracts a Quaternion from another.

ToString()

Tworzy reprezentację obiektu w postaci ciągu.Creates a string representation of the object.

ToString(IFormatProvider)

Tworzy reprezentację obiektu w postaci ciągu.Creates a string representation of the object.

Operatory

Addition(Quaternion, Quaternion)

Dodaje określone wartości Quaternion.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion)

Porównuje dwa wystąpienia Quaternion dla dokładnego równości.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion)

Porównuje dwa wystąpienia Quaternion w celu uzyskania dokładnej nierówności.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion)

Mnoży określony Quaternion przez inną.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion)

Odejmuje określony Quaternion z innego.Subtracts a specified quaternion from another.

Jawne implementacje interfejsu

IFormattable.ToString(String, IFormatProvider)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio w kodzie.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Aby uzyskać opis tego elementu członkowskiego, zobacz ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Dotyczy