Quaternion Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 quaternions permitem que você interpole entre transformações de rotação aplicadas a um objeto, facilitando a computação de animações suaves de rotações. Um quaternion representa um eixo de rotação e uma rotação ao redor 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 o delimitador decimal em vez do caractere de período. O processamento XAML para padrões de cultura invariáveis para 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 o 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
Quaternion(Double, Double, Double, Double) |
Inicializa uma nova instância da estrutura Quaternion. |
Quaternion(Vector3D, Double) |
Inicializa uma nova instância da estrutura Quaternion. |
Propriedades
Angle |
Obtém o ângulo do quatérnion, em graus. |
Axis |
Obtém o eixo do quatérnion. |
Identity |
Obtém o quatérnion de Identidade. |
IsIdentity |
Obtém um valor que indica se o quatérnion especificado é um quatérnion Identity. |
IsNormalized |
Obtém um valor que indica se o quatérnion é normalizado. |
W |
Obtém o componente W do quatérnion. |
X |
Obtém o componente X do quatérnion. |
Y |
Obtém o componente Y do quatérnion. |
Z |
Obtém o componente Z do quatérnion. |
Métodos
Add(Quaternion, Quaternion) |
Adiciona os quatérnions especificados. |
Conjugate() |
Substitui um quatérnion pelo seu conjugado. |
Equals(Object) |
Compara duas instâncias de Quaternion quanto à igualdade. |
Equals(Quaternion) |
Compara duas instâncias de Quaternion quanto à igualdade. |
Equals(Quaternion, Quaternion) |
Compara duas instâncias de Quaternion quanto à igualdade. |
GetHashCode() |
Retorna o código hash para o Quaternion. |
Invert() |
Substitui o quatérnion especificado pelo seu inverso. |
Multiply(Quaternion, Quaternion) |
Multiplica os valores de Quaternion especificados. |
Normalize() |
Retorna um quatérnion normalizado. |
Parse(String) |
Converte uma representação de cadeia de caracteres de um Quaternion na estrutura Quaternion equivalente. |
Slerp(Quaternion, Quaternion, Double) |
Interpola entre duas orientações usando interpolação linear esférica. |
Slerp(Quaternion, Quaternion, Double, Boolean) |
Faz a interpolação entre orientações, representadas como estruturas Quaternion, usando interpolação linear esférica. |
Subtract(Quaternion, Quaternion) |
Subtrai um Quatérnion 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
Addition(Quaternion, Quaternion) |
Adiciona os valores de Quaternion especificados. |
Equality(Quaternion, Quaternion) |
Compara duas instâncias Quaternion quanto à igualdade exata. |
Inequality(Quaternion, Quaternion) |
Compara duas instâncias Quaternion quanto à desigualdade exata. |
Multiply(Quaternion, Quaternion) |
Multiplica o quatérnion especificado por outro. |
Subtraction(Quaternion, Quaternion) |
Subtrai um quatérnion especificado de outro. |
Implantações explícitas de interface
IFormattable.ToString(String, IFormatProvider) |
Esse membro dá suporte à infraestrutura de Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do seu código. Para obter uma descrição desse membro, confira ToString(String, IFormatProvider). |