Quaternion Struct
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Structuur die een draaiing in drie dimensies vertegenwoordigt.
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
- Overname
- Kenmerken
- Implementeringen
Voorbeelden
<!-- 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
Opmerkingen
Met Behulp van Denions kunt u tussen rotatietransformaties die zijn toegepast op een object interpoleren, waardoor het eenvoudiger is om vloeiende animaties van rotaties te berekenen. Een zwaartepunt vertegenwoordigt een as van rotatie en een draaiing rond die as. Het is mogelijk om de as en de draaihoek van de begin- en eindposities van een gedraaid object afzonderlijk te definiëren, maar de tussenliggende posities van dat object tijdens een animatie zijn rekenkundig onzeker. Door een 3D-object te bepalen dat de oorspronkelijke afdrukstand aangeeft en een object dat de doelstand aangeeft, kunt u deze richtingen soepel interpoleren.
In XAML kan het scheidingsteken tussen de waarden van een Quaternion komma of een spatie zijn.
Sommige culturen kunnen het kommateken gebruiken als het decimaal scheidingsteken in plaats van het puntteken. XAML-verwerking voor invariante cultuur wordt standaard en-US in de meeste XAML-processor-implementaties en verwacht dat de periode het decimaal scheidingsteken is. Vermijd het gebruik van het kommateken als het decimaal scheidingsteken als u een Quaternion in XAML opgeeft, omdat dat conflicteert met de conversie van het tekenreekstype van een Quaternion kenmerkwaarde in de bijbehorende onderdelen.
XAML-kenmerkgebruik
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
XAML-waarden
x Het X onderdeel van deze Quaternion structuur.
y Het Y onderdeel van deze Quaternion structuur.
z Het Z onderdeel van deze Quaternion structuur.
w Het W onderdeel van deze Quaternion structuur.
Constructors
| Name | Description |
|---|---|
| Quaternion(Double, Double, Double, Double) |
Initialiseert een nieuw exemplaar van de Quaternion structuur. |
| Quaternion(Vector3D, Double) |
Initialiseert een nieuw exemplaar van de Quaternion structuur. |
Eigenschappen
| Name | Description |
|---|---|
| Angle |
Hiermee haalt u de hoek van de gegevens op, in graden. |
| Axis |
Haalt de as van de gegevens op. |
| Identity |
Hiermee haalt u de Identity-identiteitsnion op. |
| IsIdentity |
Hiermee haalt u een waarde op die aangeeft of de opgegeven kolom een Identity gegevension is. |
| IsNormalized |
Hiermee wordt een waarde opgehaald die aangeeft of de kolom genormaliseerd is. |
| W |
Hiermee haalt u het W-onderdeel vande op. |
| X |
Hiermee haalt u het X-onderdeel van devakion op. |
| Y |
Hiermee haalt u het Y-onderdeel van demetrynion op. |
| Z |
Hiermee haalt u het Z-onderdeel van de gegevens op. |
Methoden
| Name | Description |
|---|---|
| Add(Quaternion, Quaternion) |
Hiermee worden de opgegevenions toegevoegd. |
| Conjugate() |
Vervangt een opsomming door zijn conjug. |
| Equals(Object) |
Vergelijkt twee Quaternion instanties voor gelijkheid. |
| Equals(Quaternion, Quaternion) |
Vergelijkt twee Quaternion instanties voor gelijkheid. |
| Equals(Quaternion) |
Vergelijkt twee Quaternion instanties voor gelijkheid. |
| GetHashCode() |
Retourneert de hash-code voor de Quaternion. |
| Invert() |
Vervangt de opgegeven opsomming door de inverse. |
| Multiply(Quaternion, Quaternion) |
Vermenigvuldigt de opgegeven Quaternion waarden. |
| Normalize() |
Retourneert een genormaliseerde gegevens. |
| Parse(String) |
Converteert een tekenreeksweergave van een Quaternion naar de equivalente Quaternion structuur. |
| Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpoleert tussen richtingen, weergegeven als Quaternion structuren, met behulp van sferische lineaire interpolatie. |
| Slerp(Quaternion, Quaternion, Double) |
Interpoleert tussen twee richtingen met behulp van sferische lineaire interpolatie. |
| Subtract(Quaternion, Quaternion) |
Trekt een Eén van Denion af van een andere. |
| ToString() |
Hiermee maakt u een tekenreeksweergave van het object. |
| ToString(IFormatProvider) |
Hiermee maakt u een tekenreeksweergave van het object. |
Operators
| Name | Description |
|---|---|
| Addition(Quaternion, Quaternion) |
Hiermee worden de opgegeven Quaternion waarden toegevoegd. |
| Equality(Quaternion, Quaternion) |
Vergelijkt twee Quaternion instanties voor exacte gelijkheid. |
| Inequality(Quaternion, Quaternion) |
Vergelijkt twee Quaternion instanties voor exacte ongelijkheid. |
| Multiply(Quaternion, Quaternion) |
Vermenigvuldigt de opgegeven vermenigvuldiging met een andere. |
| Subtraction(Quaternion, Quaternion) |
Trekt een opgegeven onderverdeling af van een andere. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Dit lid ondersteunt de Windows Presentation Foundation -infrastructuur (WPF) en is niet bedoeld om rechtstreeks vanuit uw code te worden gebruikt. Zie voor een beschrijving van dit lid ToString(String, IFormatProvider). |