Referencia p5.Vector

p5.Vector

Una clase para describir vectores de dos o tres dimensiones.

Existen varias maneras de pensar sobre los vectores. Una es como flechas en el espacio, caracterizadas por su magnitud (longitud) y dirección.

Los objetos p5.Vector se usan habitualmente para programar movimiento por que simplifican algunos cálculos matemáticos. Por ejemplo, una pelota en movimiento tiene una posición y una velocidad. La posición describe la ubicación de la pelota en el espacio. El vector de posición de la pelota se extiende desde el origen al centro de la pelota. La velocidad describe la rapidez y dirección de su movimiento. Si la pelota se mueve en línea recta hacia arriba, su vector de velocidad apunta hacia arriba y su magnitud es proporcional a la rapidez del movimiento. Sumar el vector de velocidad al vector de posición lo mueve, como en pos.add(vel). En esta clase se encuentran los métodos que definen las operaciones matemáticas con vectores.

Nota: createVector() es la manera recomendada para crear una instancia de esta clase.

Ejemplos

Sintaxis

p5.Vector([x], [y], [z])

Parámetros

x

componente x del vector.

y

componente y del vector.

z

componente z del vector.

Métodos

toString

Devuelve la representación de un vector como cadena de caracteres.

LLamar toString() es útil para imprimir vectores a la consola durante la depuración del código.

set

Establece las componentes x, y y z del vector.

set() puede tomar como argumentos números separados, como en v.set(1, 2, 3); un objeto p5.Vector, como en v.set(v2); o un arreglo de números, como en v.set([1, 2, 3]).

Si no se encuentra el valor de alguna componente, será establecido en 0. Por ejemplo, v.set(4, 5) establece v.x en 4, v.y en 5 y v.z en 0. Llamar set() sin argumentos, como en v.set(), establece todas las componentes del vector en 0.

copy

Devuelve una copia del objeto p5.Vector.

add

Suma los valores de entrada a las componentes x, y y z del vector.

add() puede tomar como argumento números separados, como en v.add(1, 2, 3); otro objeto p5.Vector, como en v.add(v2); o un arreglo de números, como en v.add([1, 2, 3]).

Si no se encuentra un valor para determinada componente, esta no cambiará. Por ejemplo, v.add(4, 5) suma 4 a v.x, 5 a v.y y 0 a v.z. Llamar add() sin argumentos, como en v.add(), no tiene efecto.

La versión estática de add(), como en p5.Vector.add(v2, v1), devuelve un nuevo objeto p5.Vector sin cambiar los originales.

rem

Hace la división modular (residuo) de las componentes x, y y z del vector por los valores de entrada.

rem() puede tomar como argumento números separados, como en v.rem(1, 2, 3); otro objeto p5.Vector, como en v.rem(v2); o un arreglo de números, como en v.rem([1, 2, 3]).

Si sólo se tiene un valor, como en v.rem(2), entonces todas las componentes serán establecidas a sus valores módulo 2. Si se tienen dos valores, como en v.rem(2, 3), entonces v.z no cambiará. Llamar rem() sin argumentos como en v.rem(), no tiene efecto.

La versión estática de rem(), como en p5.Vector.rem(v2, v1), devuelve un nuevo objeto p5.Vector sin cambiar los originales.

sub

Resta los valores de entrada a las componentes x, y y z del vector.

sub() puede tomar como argumento números separados, como en v.sub(1, 2, 3); otro objeto p5.Vector, como en v.sub(v2); o un arreglo de números, como en v.sub([1, 2, 3]).

Si se omite el valor correspondiente a una componente, esta no cambiará. Por ejemplo, v.sub(4, 5) resta 4 a v.x, 5 a v.y y 0 a v.z. Llamar sub() sin argumentos, como en v.sub(), no tiene efecto.

La versión estática de sub(), como en p5.Vector.sub(v2, v1), devuelve un nuevo objeto p5.Vector sin cambiar los originales.

mult

Multiplica las componentes x, y y z del vector por los valores de entrada.

mult() puede tomar como argumento números separados, como en v.mult(1, 2, 3); otro objeto p5.Vector, como en v.mult(v2); o un arreglo de números, como en v.mult([1, 2, 3]).

Si sólo hay un valor como argumento, por ejemplo v.mult(2), entonces todas las componentes son multiplicadas por este mismo. Si no se encuentra el valor para una componente, entonces esta no cambiará. Por ejemplo, v.mult(4, 5) multiplica v.x por 4, v.y por 5 y v.z por 1. Llamar mult() sin argumentos, como en v.mult(), no tiene efecto.

La versión estática de mult(), como en p5.Vector.mult(v, 2), devuelve un nuevo objeto p5.Vector sin cambiar los originales.

div

Divide las componentes x, y y z del vector por los valores de entrada.

div() puede tomar como argumento números separados, como en v.div(1, 2, 3); otro objeto p5.Vector, como en v.div(v2); o un arreglo de números, como en v.div([1, 2, 3]).

Si sólo hay un valor como argumento, por ejemplo v.div(2), entonces todas las componentes son divididas por este mismo. Si no se encuentra el valor para una componente, entonces esta no cambiará. Por ejemplo, v.div(4, 5) divide v.x por 4, v.y por 5 y v.z por 1. Llamar div() sin argumentos, como en v.div(), no tiene efecto.

La versión estática de div(), como en p5.Vector.div(v, 2), devuelve un nuevo objeto p5.Vector sin cambiar los originales.

mag

Calcula la magnitud (longitud) del vector.

mag() permite calcular la magnitud de un vector bidimensional usando sus componentes, como en mag(x, y).

magSq

Calcula la magnitud (longitud) al cuadrado del vector.

dot

Calcula el producto punto de dos vectores.

El producto punto es un número que describe el traslape entre dos vectores. Visualmente, el producto punto se puede pensar como la "sombra" que un vector proyecta sobre el otro. La magnitud del producto punto se maximiza cuando ambos vectores apuntan en direcciones iguales u opuestas. Su magnitud es cero cuando los vectores forman un ángulo recto.

La versión de dot() con un solo parámetro lo interpreta como otro objeto p5.Vector.

La versión de dot() con múltiples parámetros los interpreta como las componentes x, y y z de otro vector.

La versión estática de dot(), como en p5.Vector.dot(v1, v2), equivale a llamar v1.dot(v2).

cross

Calcula el producto cruz de dos vectores.

El producto cruz es un vector que apunta directamente hacia fuera del plano generado por los dos vectores de argumento. La magnitud del producto cruz es igual al area del paralelogramo descrito por estos mismos vectores.

La versión estática de cross(), como en p5.Vector.cross(v1, v2), equivale a llamar v1.cross(v2).

dist

Calcula la distancia entre dos puntos representados como vectores.

Las coordenadas de un punto en el espacio pueden ser representadas por las componentes de un vector que se extiende del origen hasta el punto.

La versión estática de dist(), como en p5.Vector.dist(v1, v2), equivale a llamar v1.dist(v2).

dist() permite calcular la distancia entre dos puntos utilizando sus coordenadas, como en dist(x1, y1, x2, y2).

normalize

Escala las componentes de un objeto p5.Vector para que su magnitud sea 1.

La versión estática de normalize(), como en p5.Vector.normalize(v), devuelve un nuevo objeto p5.Vector sin cambiar el original.

limit

Establece un valor máximo para la magnitud del vector.

La versión estática de limit(), como en p5.Vector.limit(v, 5), devuelve un nuevo objeto p5.Vector sin cambiar el original.

setMag

Establece la magnitud del vector en el valor dado.

La versión estática de setMag(), como en p5.Vector.setMag(v, 10), devuelve un nuevo objeto p5.Vector sin cambiar el original.

heading

Calcula el ángulo (polar) que forma un vector bidimensional con el eje x positivo.

Por convención, el eje x positivo tiene un ángulo de 0 y los ángulos incrementan en el sentido de las manecillas del reloj.

Si el vector fue creado utilizando createVector(), heading() devuelve el ángulo en las unidades del angleMode() actual.

La versión estática de heading(), como en p5.Vector.heading(v), funciona de la misma manera.

setHeading

Rota un vector bidimensional por el ángulo específicado sin cambiar su magnitud.

Por convención, el eje x positivo tiene un ángulo de 0 y los ángulos incrementan en el sentido de las manecillas del reloj.

Si el vector fue creado utilizando createVector(), setHeading() devuelve el ángulo en las unidades del angleMode() actual.

rotate

Rota un vector bidimensional por el ángulo específicado sin cambiar su magnitud.

Por convención, el eje x positivo tiene un ángulo de 0 y los ángulos incrementan en el sentido de las manecillas del reloj.

Si el vector fue creado utilizando createVector(), rotate() devuelve el ángulo en las unidades del angleMode() actual.

La versión estática de rotate(), como en p5.Vector.rotate(v, PI), devuelve un nuevo objeto p5.Vector sin cambiar el original.

angleBetween

Calcula el álgulo entre dos vectores.

El ángulo devuelto tiene orientación (es decir, signo); esto significa que v1.angleBetween(v2) === -v2.angleBetween(v1).

Si el vector fue creado con createVector(), angleBetween() devuelve el ángulo en las unidades del angleMode() actual.

lerp

Calcula las componentes x, y y z de un vector proporcional a la diferencia entre dos vectores.

El parámetro amt es la cantidad de interpolación entre el primer y segundo vector. 0.0 mantiene todas las componentes iguales al primer vector, 0.5 las establece a la mitad entre ambos y 1.0 establece todas las componentes iguales a las del segundo vector.

La versión estática de lerp(), como en p5.Vector.lerp(v0, v1, 0.5), devuelve un nuevo objeto p5.Vector sin cambiar el original.

slerp

Calcula el ángulo polar y magnitud de un vector que está entre otros dos vectores.

El parámetro amt es la cantidad de interpolación entre el vector inicial y el vector final. 0.0 mantiene el ángulo polar y la magnitud iguales a las del vector inicial, 0.5 las establece en la mitad y 1.0 establece el ángulo polar y la magnitud iguales a las del vector final.

slerp() difiere de lerp() en que la primera interpola magnitud. Llamar v0.slerp(v1, 0.5) establece la magnitud de v0 a un valor a mitad del camino entre su magnitud original y la magnitud de v1. Llamar v0.lerp(v1, 0.5) no tiene esta garantía.

La versión estática de slerp(), como en p5.Vector.slerp(v0, v1, 0.5), devuelve un nuevo objeto p5.Vector sin cambiar el original.

reflect

Refleja el vector sobre una linea en dos dimensiones o un plano en tres dimensiones.

La orientación de la linea o el plano esta descrito por un vector normal que apunta alejandose del mismo.

La versión estática de reflect(), como en p5.Vector.reflect(v, n), devuelve un nuevo objeto p5.Vector sin cambiar el original.

array

Devuelve las componentes del vector en un arreglo de números.

equals

Revisa que todas las componentes del vector sean iguales a las de otro vector.

equals() devuelve true si todas las componentes del vector son iguales a las de otro vector y false en caso contrario.

La versión de equals() con un parámetro lo interpreta como otro objeto p5.Vector.

La versión de equals() con multiples parámetros los interpreta como las componentes de otro vector. Los parámetros faltantes son asignados un valor de 0.

La versión estática de equals(), como en p5.Vector.equals(v0, v1), interpreta ambos parámetros como objetos p5.Vector.

fromAngle

Crea un nuevo vector bidimensional a partir de un ángulo.

fromAngles

Crea un nuevo vector tridimensional a partir de una pareja de ángulos esféricos ISO.

random2D

Crea un nuevo vector bidimensional unitario con un ángulo polar aleatorio.

random3D

Crea un nuevo vector tridimensional con un ángulo polar aleatorio.

Notice any errors or typos? Please let us know. Please feel free to edit src/math/p5.Vector.js and open a pull request!

Referencias Relacionadas