Basis

Tipo de datos de matriz 3×3.

Descripción

Matriz de 3×3 usada para la rotación y la escala 3D. Casi siempre se usa como base ortogonal para una Transformación.

Contiene 3 campos vectoriales X, Y y Z como sus columnas, que son típicamente interpretados como los vectores base locales de una transformación. Para tal uso, se compone de una matriz de escalamiento y rotación, en ese orden (M = R.S).

También se puede acceder a ella como matriz de vectores tridimensionales. Estos vectores son normalmente ortogonales entre sí, pero no están necesariamente normalizados (debido a la escala).

Para más información, lea el artículo de documentación "Matrices y transformaciones".

Tutoriales

Propiedades

Vector3

x

Vector3( 1, 0, 0 )

Vector3

y

Vector3( 0, 1, 0 )

Vector3

z

Vector3( 0, 0, 1 )

Métodos

Basis

Basis ( Quat from )

Basis

Basis ( Vector3 from )

Basis

Basis ( Vector3 axis, float phi )

Basis

Basis ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis )

float

determinant ( )

Vector3

get_euler ( )

int

get_orthogonal_index ( )

Quat

get_rotation_quat ( )

Vector3

get_scale ( )

Basis

inverse ( )

bool

is_equal_approx ( Basis b, float epsilon=1e-05 )

Basis

orthonormalized ( )

Basis

rotated ( Vector3 axis, float phi )

Basis

scaled ( Vector3 scale )

Basis

slerp ( Basis to, float weight )

float

tdotx ( Vector3 with )

float

tdoty ( Vector3 with )

float

tdotz ( Vector3 with )

Basis

transposed ( )

Vector3

xform ( Vector3 v )

Vector3

xform_inv ( Vector3 v )

Constantes

  • IDENTITY = Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 ) --- La base de la identidad, sin rotación ni escalonamiento aplicado.

Esto es idéntico a llamar a Basis() sin ningún parámetro. Esta constante puede ser usada para hacer su código más claro, y para la consistencia con C#.

  • FLIP_X = Basis( -1, 0, 0, 0, 1, 0, 0, 0, 1 ) --- La base que volteará algo a lo largo del eje X cuando se use en una transformación.

  • FLIP_Y = Basis( 1, 0, 0, 0, -1, 0, 0, 0, 1 ) --- La base que volteará algo a lo largo del eje Y cuando se use en una transformación.

  • FLIP_Z = Basis( 1, 0, 0, 0, 1, 0, 0, 0, -1 ) --- La base que volteará algo a lo largo del eje Z cuando se use en una transformación.

Descripciones de Propiedades

Default

Vector3( 1, 0, 0 )

El vector X de la matriz base (columna 0). Equivalente al índice de la matriz 0.


Default

Vector3( 0, 1, 0 )

El vector Y de la matriz base (columna 1). Equivalente al índice de la matriz 1.


Default

Vector3( 0, 0, 1 )

El vector Z de la matriz base (columna 2). Equivalente al índice de la matriz 2.

Descripciones de Métodos

Construye una matriz de base de rotación pura a partir del cuaternario dado.


Construye una matriz de base de rotación pura a partir de los ángulos de Euler dados (en la convención YXZ: al *componer*, primero Y, luego X y Z en último lugar), dados en el formato vectorial como (ángulo X, ángulo Y, ángulo Z).

Considere el uso del constructor Quat en su lugar, que utiliza un cuaternio en lugar de los ángulos de Euler.


Construye una matriz de base de rotación pura, rotada alrededor del axis dado por el phi, en radianes. El eje debe ser un vector normalizado.


Construye una matriz base a partir de vectores de 3 ejes (columnas de la matriz).


Devuelve el determinante de la matriz base. Si la base está uniformemente escalada, su determinante es el cuadrado de la escala.

Un determinante negativo significa que la base tiene una escala negativa. Un determinante cero significa que la base no es invertible, y normalmente se considera inválida.


Devuelve la rotación de la base en forma de ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X, y por último Y). El vector devuelto contiene los ángulos de rotación en el formato (ángulo X, ángulo Y, ángulo Z).

Considera usar el método get_rotation_quat en su lugar, que devuelve una cuaternión Quat en lugar de ángulos Euler.


  • int get_orthogonal_index ( )

Esta función considera una discretización de las rotaciones en 24 puntos de la unidad de la esfera, situados a lo largo de los vectores (x,y,z), siendo cada componente -1, 0, o 1, y devuelve el índice del punto que mejor representa la orientación del objeto. Es utilizado principalmente por el editor GridMap. Para más detalles, consulte el código fuente de Godot.


  • Quat get_rotation_quat ( )

Devuelve la rotación de la base en forma de cuaternario. Véase get_euler si necesita ángulos de Euler, pero tenga en cuenta que las cuaterniones generalmente deben ser preferidas a los ángulos de Euler.


Asumiendo que la matriz es la combinación de una rotación y un escalado, devuelve el valor absoluto de los factores de escala a lo largo de cada eje.


Devuelve el inverso de la matriz.


Returns true if this basis and b are approximately equal, by calling is_equal_approx on each component.

Note: For complicated reasons, the epsilon argument is always discarded. Don't use the epsilon argument, it does nothing.


  • Basis orthonormalized ( )

Devuelve la versión ortonormalizada de la matriz (útil para llamar de vez en cuando para evitar el error de redondeo de las matrices ortogonales). Realiza una ortonormalización de Gram-Schmidt sobre la base de la matriz.


Introducir una rotación adicional alrededor del eje dado por phi (radianes). El eje debe ser un vector normalizado.


Introducir una escalado adicional especificada por el factor de escala 3D dado.


Asumiendo que la matriz es una matriz de rotación adecuada, slerp realiza una interpolación esférica-lineal con otra matriz de rotación.


Producto vectorial transpuesto con el eje X de la matriz.


Producto vectorial transpuesto con el eje Y de la matriz.


Producto vectorial transpuesto con el eje Z de la matriz.


Devuelve la versión transpuesta de la matriz.


Devuelve un vector transformado (multiplicado) por la matriz.


Devuelve un vector transformado (multiplicado) por la matriz base transpuesta.

Nota: Esto da como resultado una multiplicación por el inverso de la matriz sólo si representa una rotación-reflexión.