Quat

Cuaternario.

Descripción

Un cuaternario unitario utilizado para representar las rotaciones 3D. Los cuaterniones deben ser normalizados para ser usados para la rotación.

Es similar a Basis, que implementa la representación matricial de las rotaciones, y puede ser parametrizada usando tanto un par eje-ángulo como ángulos de Euler. Basis almacena la rotación, la escala y el corte, mientras que Quat sólo almacena la rotación.

Debido a su compactación y a la forma en que se almacena en la memoria, ciertas operaciones (obtener el ángulo del eje y realizar el SLERP, en particular) son más eficientes y robustas contra los errores de reales.

Tutoriales

Propiedades

float

w

1.0

float

x

0.0

float

y

0.0

float

z

0.0

Métodos

Quat

Quat ( Basis from )

Quat

Quat ( Vector3 euler )

Quat

Quat ( Vector3 axis, float angle )

Quat

Quat ( float x, float y, float z, float w )

float

angle_to ( Quat to )

Quat

cubic_slerp ( Quat b, Quat pre_a, Quat post_b, float weight )

float

dot ( Quat b )

Vector3

get_euler ( )

Quat

inverse ( )

bool

is_equal_approx ( Quat quat )

bool

is_normalized ( )

float

length ( )

float

length_squared ( )

Quat

normalized ( )

void

set_axis_angle ( Vector3 axis, float angle )

void

set_euler ( Vector3 euler )

Quat

slerp ( Quat to, float weight )

Quat

slerpni ( Quat to, float weight )

Vector3

xform ( Vector3 v )

Constantes

  • IDENTITY = Quat( 0, 0, 0, 1 ) --- El cuaternario de identidad, que no representa una rotación. Equivalente a una matriz Basis de identidad. Si un vector es transformado por un cuaternario de identidad, no cambiará.

Descripciones de Propiedades

Default

1.0

Componente W del cuaternario (parte real).

Los componentes del cuaternario normalmente no deben ser manipulados directamente.


Default

0.0

Componente X del cuaternario (parte del eje imaginario i).

Los componentes del cuaternario no deberían ser manipulados directamente.


Default

0.0

Componente Y del cuaternario (parte del eje imaginario j).

Los componentes del cuaternario normalmente no deben ser manipulados directamente.


Default

0.0

Componente Z del cuaternario (parte del eje imaginario k).

Los componentes del cuaternario normalmente no deben ser manipulados directamente.

Descripciones de Métodos

Construye un cuaternario a partir de la Basis dada.


Construye un cuaternario que realizará una rotación especificada por los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X, y por último Y), dados en el formato vectorial como (ángulo X, ángulo Y, ángulo Z).


Construye un cuaternario que girará alrededor del eje dado por el ángulo especificado. El eje debe ser un vector normalizado.


Construye un cuaternario definido por los valores dados.


Returns the angle between this quaternion and to. This is the magnitude of the angle you would need to rotate by to get from one to the other.

Note: This method has an abnormally high amount of floating-point error, so methods such as @GDScript.is_zero_approx will not work reliably.


Performs a cubic spherical interpolation between quaternions pre_a, this vector, b, and post_b, by the given amount weight.


Realiza una interpolación esférica cúbica entre cuaterniones.


Devuelve los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X e Y al final) correspondientes a la rotación representada por la unidad cuaternaria. El vector devuelto contiene los ángulos de rotación en el formato (ángulo X, ángulo Y, ángulo Z).


Devuelve el inverso del cuaternario.


Returns true if this quaternion and quat are approximately equal, by running @GDScript.is_equal_approx on each component.


  • bool is_normalized ( )

Devuelve si el cuaternario está normalizado o no.


Devuelve la longitud del cuaternario.


  • float length_squared ( )

Devuelve la longitud del cuaternario, cuadrada.


  • Quat normalized ( )

Devuelve una copia del cuaternario, normalizada a la longitud de la unidad.


Establece el cuaternario a una rotación que gira alrededor del eje por el ángulo especificado, en radianes. El eje debe ser un vector normalizado.


Establece el cuaternario a una rotación especificada por los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X e Y en último lugar), dada en el formato vectorial como (ángulo X, ángulo Y, ángulo Z).


Devuelve el resultado de la interpolación lineal esférica entre este cuaternario y a por cantidad peso.

Nota: Ambos cuaterniones deben ser normalizados.


Devuelve el resultado de la interpolación lineal esférica entre este cuaternario y a por cantidad peso, pero sin comprobar si la trayectoria de rotación no es mayor de 90 grados.


Devuelve un vector transformado (multiplicado) por este cuaternario.