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¶
|
||
|
||
|
||
|
Métodos¶
cubic_slerp ( Quat b, Quat pre_a, Quat post_b, float weight ) |
|
get_euler ( ) |
|
inverse ( ) |
|
is_equal_approx ( Quat quat ) |
|
is_normalized ( ) |
|
length ( ) |
|
length_squared ( ) |
|
normalized ( ) |
|
void |
set_axis_angle ( Vector3 axis, float angle ) |
void |
|
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¶
float w
Default |
|
Componente W del cuaternario (parte real).
Los componentes del cuaternario normalmente no deben ser manipulados directamente.
float x
Default |
|
Componente X del cuaternario (parte del eje imaginario i
).
Los componentes del cuaternario no deberían ser manipulados directamente.
float y
Default |
|
Componente Y del cuaternario (parte del eje imaginario j
).
Los componentes del cuaternario normalmente no deben ser manipulados directamente.
float z
Default |
|
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.
Vector3 get_euler ( )
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).
Quat inverse ( )
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.
float length ( )
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.
void set_euler ( Vector3 euler )
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.