Quaternion Estrutura

Definição

Estrutura que representa uma rotação em três dimensões.Structure that represents a rotation in three dimensions.

public value class 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]
public struct Quaternion : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
type Quaternion = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
[<System.Serializable>]
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 quaternions permitem a interpolação entre as transformações de rotação aplicadas a um objeto, facilitando a computação de animações suaves de rotações.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Um Quaternion representa um eixo de rotação e uma rotação ao seu eixo.A quaternion represents an axis of rotation and a rotation around that axis. É 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.It's possible to individually define the axis and angle of rotation of the starting and ending positions of a rotated object ,but the intermediate positions of that object during an animation are computationally uncertain. Ao determinar um Quaternion que representa a orientação original de um objeto 3D e outro que representa sua orientação de destino, você pode interpolar suavemente entre essas orientações.By determining a quaternion that represents the original orientation of a 3-D object and one that represents its destination orientation, you can smoothly interpolate between those orientations.

Em XAML, o delimitador entre os valores de um Quaternion pode ser uma vírgula ou um espaço.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Algumas culturas podem usar o caractere de vírgula como o delimitador decimal em vez do caractere de ponto.Some cultures might use the comma character as the decimal delimiter instead of the period character. O processamento XAML para padrões de cultura invariável para en-US na maioria das implementações de processador XAML e espera que o período seja o delimitador decimal.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Você deve evitar usar o caractere de vírgula como o delimitador decimal se especificar um Quaternion em XAML, pois isso irá conflitar com a conversão do tipo de cadeia de caracteres de um Quaternion valor de atributo em seus componentes.You should avoid using the comma character as the decimal delimiter if specifying a Quaternion in XAML, because that will clash with the string type conversion of a Quaternion attribute value into its components.

Uso do Atributo XAMLXAML Attribute Usage

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

Valores XAMLXAML Values

xx
O X componente desta Quaternion estrutura.The X component of this Quaternion structure.

yy
O Y componente desta Quaternion estrutura.The Y component of this Quaternion structure.

zz
O Z componente desta Quaternion estrutura.The Z component of this Quaternion structure.

ww
O W componente desta Quaternion estrutura.The W component of this Quaternion structure.

Construtores

Quaternion(Double, Double, Double, Double)

Inicializa uma nova instância da estrutura Quaternion.Initializes a new instance of the Quaternion structure.

Quaternion(Vector3D, Double)

Inicializa uma nova instância da estrutura Quaternion.Initializes a new instance of the Quaternion structure.

Propriedades

Angle

Obtém o ângulo do quatérnion, em graus.Gets the quaternion's angle, in degrees.

Axis

Obtém o eixo do quatérnion.Gets the quaternion's axis.

Identity

Obtém o quatérnion de Identidade.Gets the Identity quaternion.

IsIdentity

Obtém um valor que indica se o quatérnion especificado é um quatérnion Identity.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized

Obtém um valor que indica se o quatérnion é normalizado.Gets a value that indicates whether the quaternion is normalized.

W

Obtém o componente W do quatérnion.Gets the W component of the quaternion.

X

Obtém o componente X do quatérnion.Gets the X component of the quaternion.

Y

Obtém o componente Y do quatérnion.Gets the Y component of the quaternion.

Z

Obtém o componente Z do quatérnion.Gets the Z component of the quaternion.

Métodos

Add(Quaternion, Quaternion)

Adiciona os quatérnions especificados.Adds the specified quaternions.

Conjugate()

Substitui um quatérnion pelo seu conjugado.Replaces a quaternion with its conjugate.

Equals(Object)

Compara duas instâncias de Quaternion quanto à igualdade.Compares two Quaternion instances for equality.

Equals(Quaternion)

Compara duas instâncias de Quaternion quanto à igualdade.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion)

Compara duas instâncias de Quaternion quanto à igualdade.Compares two Quaternion instances for equality.

GetHashCode()

Retorna o código hash para o Quaternion.Returns the hash code for the Quaternion.

Invert()

Substitui o quatérnion especificado pelo seu inverso.Replaces the specified quaternion with its inverse.

Multiply(Quaternion, Quaternion)

Multiplica os valores de Quaternion especificados.Multiplies the specified Quaternion values.

Normalize()

Retorna um quatérnion normalizado.Returns a normalized quaternion.

Parse(String)

Converte uma representação de cadeia de caracteres de um Quaternion na estrutura Quaternion equivalente.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double)

Interpola entre duas orientações usando interpolação linear esférica.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean)

Faz a interpolação entre orientações, representadas como estruturas Quaternion, usando interpolação linear esférica.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion)

Subtrai um Quatérnion de outro.Subtracts a Quaternion from another.

ToString()

Cria uma representação de cadeia de caracteres do objeto.Creates a string representation of the object.

ToString(IFormatProvider)

Cria uma representação de cadeia de caracteres do objeto.Creates a string representation of the object.

Operadores

Addition(Quaternion, Quaternion)

Adiciona os valores de Quaternion especificados.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion)

Compara duas instâncias Quaternion quanto à igualdade exata.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion)

Compara duas instâncias Quaternion quanto à desigualdade exata.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion)

Multiplica o quatérnion especificado por outro.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion)

Subtrai um quatérnion especificado de outro.Subtracts a specified quaternion from another.

Implantações explícitas de interface

IFormattable.ToString(String, IFormatProvider)

Este membro dá suporte à infraestrutura de Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do seu código.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Para obter uma descrição desse membro, confira ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Aplica-se a