Quaternion Estructura
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Estructura que representa un giro en tres dimensiones.
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
- Herencia
- Atributos
- Implementaciones
Ejemplos
<!-- 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
Comentarios
Los cuaterniones permiten interpolar entre transformaciones de rotación aplicadas a un objeto, lo que facilita el proceso de animaciones suaves de rotaciones. Un cuaternión representa un eje de rotación y un giro alrededor de ese eje. Es posible definir individualmente el eje y el ángulo de rotación de las posiciones iniciales y finales de un objeto girado, pero las posiciones intermedias de ese objeto durante una animación son computacionalmente inciertas. Al determinar un cuaternión que representa la orientación original de un objeto 3D y otro que representa su orientación de destino, puede interpolar sin problemas entre esas orientaciones.
En XAML, el delimitador entre los valores de un Quaternion puede ser una coma o un espacio.
Algunas referencias culturales pueden usar el carácter de coma como delimitador decimal en lugar del carácter de punto. El procesamiento XAML para referencias culturales invariables tiene como valor predeterminado en-US en la mayoría de las implementaciones del procesador XAML y espera que el período sea el delimitador decimal. Debes evitar usar el carácter de coma como delimitador decimal si se especifica un Quaternion elemento en XAML, ya que esto chocará con la conversión de tipo de cadena de un Quaternion valor de atributo en sus componentes.
Uso de atributos XAML
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
Valores XAML
x Componente X de esta Quaternion estructura.
y El Y componente de esta Quaternion estructura.
z Componente Z de esta Quaternion estructura.
w El W componente de esta Quaternion estructura.
Constructores
| Nombre | Description |
|---|---|
| Quaternion(Double, Double, Double, Double) |
Inicializa una nueva instancia de la Quaternion estructura. |
| Quaternion(Vector3D, Double) |
Inicializa una nueva instancia de la Quaternion estructura. |
Propiedades
| Nombre | Description |
|---|---|
| Angle |
Obtiene el ángulo del cuaternión, en grados. |
| Axis |
Obtiene el eje del cuaternión. |
| Identity |
Obtiene el cuaternión de identidad. |
| IsIdentity |
Obtiene un valor que indica si el cuaternión especificado es un Identity cuaternión. |
| IsNormalized |
Obtiene un valor que indica si el cuaternión está normalizado. |
| W |
Obtiene el componente W del cuaternión. |
| X |
Obtiene el componente X del cuaternión. |
| Y |
Obtiene el componente Y del cuaternión. |
| Z |
Obtiene el componente Z del cuaternión. |
Métodos
| Nombre | Description |
|---|---|
| Add(Quaternion, Quaternion) |
Agrega los cuaterniones especificados. |
| Conjugate() |
Reemplaza un cuaternión por su conjugado. |
| Equals(Object) |
Compara dos Quaternion instancias de igualdad. |
| Equals(Quaternion, Quaternion) |
Compara dos Quaternion instancias de igualdad. |
| Equals(Quaternion) |
Compara dos Quaternion instancias de igualdad. |
| GetHashCode() |
Devuelve el código hash de .Quaternion |
| Invert() |
Reemplaza el cuaternión especificado por su inverso. |
| Multiply(Quaternion, Quaternion) |
Multiplica los valores especificados Quaternion . |
| Normalize() |
Devuelve un cuaternión normalizado. |
| Parse(String) |
Convierte una representación de cadena de en Quaternion la estructura equivalente Quaternion . |
| Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpola entre orientaciones, representada como Quaternion estructuras, utilizando interpolación lineal esférica. |
| Slerp(Quaternion, Quaternion, Double) |
Interpola entre dos orientaciones mediante interpolación lineal esférica. |
| Subtract(Quaternion, Quaternion) |
Resta un cuaternión de otro. |
| ToString() |
Crea una representación de cadena del objeto . |
| ToString(IFormatProvider) |
Crea una representación de cadena del objeto . |
Operadores
| Nombre | Description |
|---|---|
| Addition(Quaternion, Quaternion) |
Agrega los valores especificados Quaternion . |
| Equality(Quaternion, Quaternion) |
Compara dos Quaternion instancias con la igualdad exacta. |
| Inequality(Quaternion, Quaternion) |
Compara dos Quaternion instancias para obtener una desigualdad exacta. |
| Multiply(Quaternion, Quaternion) |
Multiplica el cuaternión especificado por otro. |
| Subtraction(Quaternion, Quaternion) |
Resta un cuaternión especificado de otro. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Este miembro admite la infraestructura de Windows Presentation Foundation (WPF) y no está pensada para usarse directamente desde el código. Para obtener una descripción de este miembro, vea ToString(String, IFormatProvider). |