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 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). |