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

Comentários

Os quatérnios permitem interpolar entre transformações de rotação aplicadas a um objeto, facilitando a computação 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 girado, mas as posições intermediárias desse objeto durante uma animação são computacionalmente incertas. Ao determinar um quatérnio que representa a orientação original de um objeto 3D e um que representa sua orientação de destino, você pode interpolar sem problemas entre essas orientações.

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

Algumas culturas podem usar o caractere de vírgula como delimitador decimal em vez do caractere de período. O processamento XAML para cultura invariável usa como padrão en-US na maioria das implementações de processador XAML e espera que o período seja o delimitador decimal. Você deve evitar usar o caractere de vírgula como delimitador decimal se especificar um Quaternion em XAML, pois isso entrará em conflito com a conversão de tipo de cadeia de caracteres de um Quaternion valor de atributo em seus componentes.

Uso do atributo XAML

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

Valores XAML

x O X componente dessa Quaternion estrutura.

y O Y componente dessa Quaternion estrutura.

z O Z componente dessa Quaternion estrutura.

w O W componente dessa Quaternion estrutura.

Construtores

Nome 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

Nome Description
Angle

Obtém o ângulo do quatérnio, em graus.

Axis

Obtém o eixo do quatérnio.

Identity

Obtém o quatérnio identity.

IsIdentity

Obtém um valor que indica se o quatérnio especificado é um Identity quatérnio.

IsNormalized

Obtém um valor que indica se o quatérnio é normalizado.

W

Obtém o componente W do quatérnio.

X

Obtém o componente X do quatérnio.

Y

Obtém o componente Y do quatérnio.

Z

Obtém o componente Z do quatérnio.

Métodos

Nome Description
Add(Quaternion, Quaternion)

Adiciona os quatérnios especificados.

Conjugate()

Substitui um quatérnio por seu conjugado.

Equals(Object)

Compara duas Quaternion instâncias para igualdade.

Equals(Quaternion, Quaternion)

Compara duas Quaternion instâncias para igualdade.

Equals(Quaternion)

Compara duas Quaternion instâncias para igualdade.

GetHashCode()

Retorna o código hash do Quaternion.

Invert()

Substitui o quatérnio especificado por seu inverso.

Multiply(Quaternion, Quaternion)

Multiplica os valores especificados Quaternion .

Normalize()

Retorna um quatérnio normalizado.

Parse(String)

Converte uma representação de cadeia de caracteres de um 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 Quatérnio de outro.

ToString()

Cria uma representação de cadeia de caracteres do objeto.

ToString(IFormatProvider)

Cria uma representação de cadeia de caracteres do objeto.

Operadores

Nome Description
Addition(Quaternion, Quaternion)

Adiciona os valores especificados Quaternion .

Equality(Quaternion, Quaternion)

Compara duas Quaternion instâncias quanto à igualdade exata.

Inequality(Quaternion, Quaternion)

Compara duas Quaternion instâncias para a desigualdade exata.

Multiply(Quaternion, Quaternion)

Multiplica o quatérnio especificado por outro.

Subtraction(Quaternion, Quaternion)

Subtrai um quatérnio especificado de outro.

Implantações explícitas de interface

Nome Description
IFormattable.ToString(String, IFormatProvider)

Esse membro dá suporte à infraestrutura do WPF (Windows Presentation Foundation) e não se destina a ser usado diretamente do seu código. Para obter uma descrição deste membro, consulte ToString(String, IFormatProvider).

Aplica-se a