vec2
Interfaz que representa un vector 2D. Un vector 2D se representa mediante coordenadas (x, y) y puede representar un punto en un plano, un vector direccional u otros tipos de datos con tres dimensiones ordenadas. Los objetos Vec2 se crean con la ecs.math.vec2 Vec2Factory, o mediante operaciones sobre otros objetos Vec2.
Fuente
La interfaz Vec2Source representa cualquier objeto que tenga propiedades x e y y, por lo tanto, puede utilizarse como fuente de datos para crear un Vec2. Además, Vec2Source se puede utilizar como argumento de algoritmos Vec2, lo que significa que se puede utilizar cualquier objeto con propiedades {x: number, y: number} .
Propiedades
Vec2Source tiene las siguientes propiedades enumerables:
readonly x: number Accede a la componente x del vector.
readonly y: number Accede al componente y del vector.
Fábrica
de
Crea un Vec2 a partir de un Vec2, u otro objeto con propiedades x, y.
ecs.math.vec2.from({x, y}: {x: number, y: number}) // -> vec2
un
Crea un vec2 en el que todos los elementos son iguales a uno. Esto equivale a ```vec2.from({x: 1, y: 1})``.
ecs.math.vec2.one() // -> vec2
escala
Crea un vec2 con todos los elementos ajustados al valor de escala s. Esto equivale a ```vec2.from({x: s, y: s})``.
ecs.math.vec2.scale(s: número) // -> vec2
xy
Crea un Vec2 a partir de los valores x, y. Esto equivale a ```vec2.from({x, y})``.
ecs.math.vec2.xy(x: número, y: número) // -> vec2
cero
Crea un vec2 donde todos los elementos son cero. Esto equivale a ```vec2.from({x: 0, y: 0})``.
ecs.math.vec2.zero() // -> vec2
Inmutable
Los siguientes métodos realizan cálculos basados en el valor actual de un Vec2 pero no modifican su contenido. Los métodos que devuelven tipos Vec2 devuelven nuevos objetos. Las API inmutables suelen ser más seguras, más legibles y menos propensas a errores que las mutables, pero pueden resultar ineficaces en situaciones en las que se asignan miles de objetos en cada trama.
Si la recogida de basura afecta al rendimiento, considere la posibilidad de utilizar la API Mutable que se describe a continuación.
clonar
Crea un nuevo vector con los mismos componentes que este vector.
existingVec2.clone() // -> vec2
cruz
Calcula el producto cruz de este vector y otro vector. Para vectores 2D, el producto cruzado es el tamaño de la componente z del producto cruzado 3D de los dos vectores con 0 como componente z.
existingVec2.cross(v: Vec2Source) // -> número
distanceTo
Calcula la distancia euclidiana entre este vector y otro vector.
existingVec2.distanceTo(v: Vec2Source) // -> número
dividir
División vectorial por elementos.
existingVec2.divide(v: Vec2Source) // -> vec2
punto
Calcula el producto punto de este vector y otro vector.
existingVec2.dot(v: Vec2Source) // -> número
es igual a
Comprueba si dos vectores son iguales, con una tolerancia en coma flotante especificada.
existingVec2.equals(v: Vec2Source, tolerance: number) // -> boolean
longitud
Longitud del vector.
existingVec2.length() // -> número
menos
Resta un vector de este vector.
existingVec2.minus(v: Vec2Source) // -> vec2
mezcla
Calcula una interpolación lineal entre este vector y otro vector v con un factor t tal que el resultado es esteVec * (1 - t) + v * t. El factor t debe estar comprendido entre cero y 1.
existingVec2.mix(v: Vec2Source, t: number) // -> vec2
normalizar
Devuelve un nuevo vector con la misma dirección que este vector, pero con una longitud de 1.
existingVec2.normalize() // -> vec2