Quaternion Estrutura

Definição

Estrutura que representa uma rotação em três dimensões.

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
Herança
Quaternion
Atributos
Implementações

Exemplos

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

Observações

Os quatérnios permitem interpolar entre transformações de rotação aplicadas a um objeto, facilitando assim o cálculo de animações suaves de rotações. Um quatérnio representa um eixo de rotação e uma rotação em torno desse eixo. É possível definir individualmente o eixo e o ângulo de rotação das posições inicial e final de um objeto rodado, mas as posições intermédias desse objeto durante uma animação são computacionalmente incertas. Ao determinar um quaternião que representa a orientação original de um objeto 3D e outro que representa a sua orientação de destino, pode-se interpolar suavemente entre essas orientações.

Em XAML, o delimitador entre os valores de a Quaternion pode ser uma vírgula ou um espaço.

Algumas culturas podem usar o carácter vírgula como delimitador decimal em vez do carácter do período. O processamento XAML para cultura invariante tem por defeito en-US na maioria das implementações de processadores XAML, e espera que o período seja o delimitador decimal. Deves evitar usar o carácter vírgula como delimitador decimal se especificares a Quaternion em XAML, porque isso vai entrar em conflito com a conversão do tipo de cadeia de um Quaternion valor de atributo para os seus componentes.

Uso de atributos XAML

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

Valores XAML

x O X componente desta Quaternion estrutura.

y O Y componente desta Quaternion estrutura.

z O Z componente desta Quaternion estrutura.

w O W componente desta Quaternion estrutura.

Construtores

Name Description
Quaternion(Double, Double, Double, Double)

Inicializa uma nova instância da Quaternion estrutura.

Quaternion(Vector3D, Double)

Inicializa uma nova instância da Quaternion estrutura.

Propriedades

Name Description
Angle

Obtém o ângulo do quaternion, em graus.

Axis

Obtém o eixo do quaternião.

Identity

Obtém o quaternião da Identidade.

IsIdentity

Obtém um valor que indica se o quaternião especificado é um Identity quaternião.

IsNormalized

Obtém um valor que indica se o quaternião está normalizado.

W

Obtém o componente W do quaternião.

X

Obtém o componente X do quaternião.

Y

Obtém a componente Y do quaternião.

Z

Obtém a componente Z do quaternião.

Métodos

Name Description
Add(Quaternion, Quaternion)

Adiciona os quatérnios especificados.

Conjugate()

Substitui um quaternião pelo seu conjugado.

Equals(Object)

Compara duas Quaternion instâncias para a igualdade.

Equals(Quaternion, Quaternion)

Compara duas Quaternion instâncias para a igualdade.

Equals(Quaternion)

Compara duas Quaternion instâncias para a igualdade.

GetHashCode()

Devolve o código de hash para o Quaternion.

Invert()

Substitui o quatérnio especificado pelo seu inverso.

Multiply(Quaternion, Quaternion)

Multiplica os valores especificados Quaternion .

Normalize()

Devolve um quaternião normalizado.

Parse(String)

Converte uma representação de cadeias de a Quaternion na estrutura equivalente Quaternion .

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpola entre orientações, representadas como Quaternion estruturas, usando interpolação linear esférica.

Slerp(Quaternion, Quaternion, Double)

Interpola entre duas orientações usando interpolação linear esférica.

Subtract(Quaternion, Quaternion)

Subtrai um Quaternion a outro.

ToString()

Cria uma representação string do objeto.

ToString(IFormatProvider)

Cria uma representação string do objeto.

Operadores

Name Description
Addition(Quaternion, Quaternion)

Adiciona os valores especificados Quaternion .

Equality(Quaternion, Quaternion)

Compara duas Quaternion instâncias para igualdade exata.

Inequality(Quaternion, Quaternion)

Compara dois Quaternion casos para a desigualdade exata.

Multiply(Quaternion, Quaternion)

Multiplica o quaternião especificado por outro.

Subtraction(Quaternion, Quaternion)

Subtrai um quaternião especificado a outro.

Implementações de Interface Explícita

Name Description
IFormattable.ToString(String, IFormatProvider)

Este membro suporta a infraestrutura Windows Presentation Foundation (WPF) e não foi concebido para ser usado diretamente a partir do seu código. Para uma descrição deste elemento, veja ToString(String, IFormatProvider).

Aplica-se a