quaternion (estructura)
Artículo 06/13/2023
4 colaboradores
Comentarios
En este artículo
Vector de cuatro dimensiones, que se usa para representar un giro.
Un cuaternión puede girar eficazmente un objeto sobre el vector (x, y, z) por el ángulo theta, donde w = cos(theta/2). Los cuaterniones se usan normalmente para la interpolación suave entre dos ángulos y para evitar el problema de bloqueo del cardán que puede producirse con ángulos de Euler.
Este tipo solo está disponible en C++. Su equivalente de .NET es System.Numerics.Quaternion .
Constructores
Nombre
Descripción
quaternion()
Crea un cuaternión sin inicializar.
quaternion(float x, float y, float z, float w)
Crea un cuaternión con los valores especificados.
quaternion(float3 vectorPart, float scalarPart)
Crea un cuaternión a partir de un valor float3 y escalar.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value)
Convierte microsoft.Graphics.Canvas.Numerics.Quaternion en un cuaternión .
Functions
Nombre
Descripción
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle)
Crea un cuaternión a partir de un vector y un ángulo para girar sobre el vector.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll)
Crea un cuaternión a partir de los ángulos de giro, inclinación y giro especificados.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix)
Crea un cuaternión a partir de una matriz de rotación.
bool is_identity(quaternion const& value)
Comprueba si se trata de un cuaternión de identidad (sin rotación).
float length(quaternion const& value)
Calcula la longitud de un cuaternión.
float length_squared(quaternion const& value)
Calcula la longitud cuadrada de un cuaternión.
float dot(quaternion const& quaternion1, quaternion const& quaternion2)
Calcula el producto escalar de dos cuaterniones.
quaternion normalize(quaternion const& value)
Divide cada componente de un cuaternión por la longitud del cuaternión.
quaternion conjugate(quaternion const& value)
Calcula el conjugado de un cuaternión.
quaternion inverse(quaternion const& value)
Calcula el inverso de un cuaternión.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount)
Interpola entre dos cuaterniones mediante la interpolación lineal esférica.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount)
Interpola linealmente entre dos cuaterniones.
quaternion concatenate(quaternion const& value1, quaternion const& value2)
Concatena dos cuaterniones; el resultado representa la primera rotación seguida de la segunda rotación.
Métodos
Nombre
Descripción
static quaternion identity()
Devuelve una instancia del cuaternión de identidad.
Operadores
Nombre
Descripción
quaternion operator+ (quaternion const& value1, quaternion const& value2)
Agrega dos cuaterniones.
quaternion operator- (quaternion const& value1, quaternion const& value2)
Resta un cuaternión de otro cuaternión.
quaternion operator* (quaternion const& value1, quaternion const& value2)
Multiplica un cuaternión por otro cuaternión.
quaternion operator* (quaternion const& value1, float value2)
Multiplica un cuaternión por un valor escalar.
quaternion operator/ (quaternion const& value1, quaternion const& value2)
Divide un cuaternión por otro cuaternión.
quaternion operator- (quaternion const& value)
Voltea el signo de cada componente del cuaternión.
quaternion& operator+= (quaternion& value1, quaternion const& value2)
En contexto, agrega dos cuaterniones.
quaternion& operator-= (quaternion& value1, quaternion const& value2)
En contexto resta un cuaternión de otro cuaternión.
quaternion& operator*= (quaternion& value1, quaternion const& value2)
En contexto multiplica un cuaternión por otro cuaternión.
quaternion& operator*= (quaternion& value1, float value2)
Nultiplie localmente un cuaternión por un valor escalar.
quaternion& operator/= (quaternion& value1, quaternion const& value2)
En contexto divide un cuaternión por otro cuaternión.
bool operator== (quaternion const& value1, quaternion const& value2)
Determina si dos instancias de cuaternión son iguales.
bool operator!= (quaternion const& value1, quaternion const& value2)
Determina si dos instancias de cuaternión no son iguales.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const
Convierte un cuaternión en microsoft.Graphics.Canvas.Numerics.Quaternion .
Campos
Nombre
Descripción
float x
Valor X del componente vectorial del cuaternión.
float y
Valor Y del componente vectorial del cuaternión.
float z
Valor Z del componente vectorial del cuaternión.
float w
Componente de rotación del cuaternión.
Requisitos
Requisito
Value
Espacio de nombres
Windows::Foundation::Numerics
Encabezado
Windowsnumerics.h
Vea también
API windowsnumerics.h