Compartilhar via


Estrutura quatérnio

Um vetor quadridimensional, usado para representar uma rotação.

Um quatérnion pode girar com eficiência um objeto sobre o vetor (x, y, z) pela teta angular, em que w = cos(theta/2). Os quatérnions normalmente são usados para interpolação suave entre dois ângulos e para evitar o problema de bloqueio de gimbal que pode ocorrer com ângulos de Euler.

Esse tipo só está disponível no C++. Seu equivalente .NET é System.Numerics.Quaternion.

Construtores

Nome Descrição
quaternion() Cria um quatérnion não inicializado.
quaternion(float x, float y, float z, float w) Cria um quatérnion com os valores especificados.
quaternion(float3 vectorPart, float scalarPart) Cria um quatérnion de um float3 e escalar.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Converte um Microsoft.Graphics.Canvas.Numerics.Quaternion em um quatérnion.

Funções

Nome Descrição
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) Cria um quatérnio de um vetor e um ângulo a ser girado sobre o vetor.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Cria um quatérnion com base em ângulos de rotação, inclinação e rolagem especificados.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) Cria um quatérnion de uma matriz de rotação.
bool is_identity(quaternion const& value) Verifica se esse é um quatérnion de identidade (sem rotação).
float length(quaternion const& value) Calcula o comprimento de um quatérnion.
float length_squared(quaternion const& value) Calcula o comprimento ao quadrado de um quatérnion.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Calcula o produto escalar de dois quatérnios.
quaternion normalize(quaternion const& value) Divide cada componente de um quatérnion pelo comprimento do quatérnion.
quaternion conjugate(quaternion const& value) Calcula o conjugado de um quatérnion.
quaternion inverse(quaternion const& value) Calcula o inverso de um quatérnion.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpola entre dois quatérnios usando interpolação linear esférica.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpola linearmente entre dois quatérnions.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Concatena dois quatérnions; o resultado representa a primeira rotação seguida pela segunda rotação.

Métodos

Nome Descrição
static quaternion identity() Retorna uma instância do quatérnion de identidade.

Operadores

Nome Descrição
quaternion operator+ (quaternion const& value1, quaternion const& value2) Adiciona dois quatérnions.
quaternion operator- (quaternion const& value1, quaternion const& value2) Subtrai um quatérnion de outro quatérnion.
quaternion operator* (quaternion const& value1, quaternion const& value2) Multiplica um quatérnion por outro quatérnion.
quaternion operator* (quaternion const& value1, float value2) Multiplica um quatérnion por um valor escalar.
quaternion operator/ (quaternion const& value1, quaternion const& value2) Divide um quatérnion por outro quatérnion.
quaternion operator- (quaternion const& value) Inverte o sinal de cada componente do quatérnion.
quaternion& operator+= (quaternion& value1, quaternion const& value2) In-loco adiciona dois quatérnions.
quaternion& operator-= (quaternion& value1, quaternion const& value2) No local subtrai um quatérnion de outro quatérnion.
quaternion& operator*= (quaternion& value1, quaternion const& value2) No local multiplica um quatérnion por outro quatérnion.
quaternion& operator*= (quaternion& value1, float value2) Nultiplies in-loco um quatérnion por um valor escalar.
quaternion& operator/= (quaternion& value1, quaternion const& value2) In-loco divide um quatérnion por outro quatérnion.
bool operator== (quaternion const& value1, quaternion const& value2) Determina se duas instâncias de quatérnion são iguais.
bool operator!= (quaternion const& value1, quaternion const& value2) Determina se duas instâncias de quatérnion não são iguais.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Converte um quatérnio em um Microsoft.Graphics.Canvas.Numerics.Quaternion.

Campos

Nome Descrição
float x Valor X do componente vetor do quatérnion.
float y Valor Y do componente vetor do quatérnion.
float z Valor Z do componente vetor do quatérnion.
float w Componente de rotação do quatérnion.

Requisitos

Requisito Valor
Namespace Windows::Foundation::Numerics
Cabeçalho
Windowsnumerics.h

Confira também

APIs windowsnumerics.h