If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Más matemáticas vectoriales

Sumar fue solo el primer paso. Hay muchas operaciones matemáticas que se usan comúnmente con vectores. A continuación hay una lista exhaustiva de las operaciones disponibles como funciones en el objeto PVector de ProcessingJS. Vamos a revisar algunas de las más importantes ahora. Cuando nuestros ejemplos se vuelvan más complicados en las siguientes secciones, seguiremos revelando los detalles de más funciones.
  • add(): sumar vectores
  • sub(): restar vectores
  • mult(): escalar el vector con una multiplicación
  • div(): escalar el vector con una división
  • mag(): calcular la magnitud de un vector
  • normalize(): normalizar el vector a una longitud unitaria de 1
  • limit(): limitar la magnitud de un vector
  • heading2D(): el rumbo 2D de un vector expresado como un ángulo
  • dist(): la distancia euclidiana entre dos vectores (considerados como puntos)
  • angleBetween(): encontrar el ángulo entre dos vectores
  • dot(): el producto punto de dos vectores
  • cross(): el product cruz de dos vectores (solo relevante en tres dimensiones)
Ya que cubrimos la suma, empecemos con la resta. Esta no es tan grave; ¡solo toma el signo de más y reemplázalo con uno de menos!

Resta de vectores

w=uv
se puede escribir como:
wx=uxvx
wy=uyvy
y entonces la función dentro de PVector se ve así:
PVector.prototype.sub = function(vector2) {
    this.x = this.x - vector2.x;
    this.y = this.y - vector2.y;
  };
El siguiente ejemplo muestra la resta de vectores, calcula la diferencia entre dos puntos: la ubicación del ratón y el centro de la ventana.
Propiedades numéricas básicas con vectores
Cuando hacemos matemáticas con los números reales, se cumplen estas reglas básicas:
La regla de conmutatividad: 3+2=2+3
La regla de asociatividad: (3+2)+1=3+(2+1)
Esas mismas reglas se cumplen al hacer matemáticas con vectores:
La regla de conmutatividad: u+v=v+u
La regla de asociatividad: u+(v+w)=(u+v)+w

Multiplicación de vectores

Pasando a la multiplicación, tenemos que pensar un poco diferente. Cuando hablamos de multiplicar un vector, normalmente nos referimos a escalar un vector. Si quisiéramos escalar un vector al doble de su tamaño o a una tercera parte de su tamaño (sin cambiar la dirección), diríamos: “Multiplica el vector por 2” o “Multiplica el vector por 1/3.” Observa que estamos multiplicando el vector por un escalar, un solo número, no por otro vector.
Para escalar un vector, multiplicamos cada componente (x y y) por un escalar.
w=un
Se puede escribir como:
wx=uxnwy=uyn
Escalar un vector
Veamos un ejemplo con notación de vectores.
u=(3,7)n=3w=unwx=33wy=73w=(9,21)
Por lo tanto, la función dentro del objeto PVector se escribe así:
PVector.prototype.mult = function(n) {
   this.x = this.x * n;
   this.y = this.y * n;
}
Y usar mult en el código es tan sencillo como:
var u = new PVector(-3,7);
// Este PVector ahora mide el triple y es igual a (-9,21).
u.mult(3);
Aquí está el ejemplo de antes, pero multiplicamos el vector por 0.5 cada vez, de manera que ahora esté escalado a la mitad:
En lugar de multiplicar por 0.5 arriba, también pudimos haber dividido entre 2. La división funciona igual que la multiplicación: simplemente reemplazamos el signo de multiplicación (asterisco) con el signo de división (diagonal).
Así es como se implementa internamente el método div:
PVector.prototype.div = function(n) {
   this.x = this.x / n;
   this.y = this.y / n;
}
Y así es como lo podemos usar en el código:
var u = new PVector(8, -4);
u.div(2);

Más propiedades numéricas con vectores

Al igual que con la suma, las reglas algebraicas básicas de la multiplicación se pueden aplicar a los vectores.
La regla asociativa: (nm)v=n(mv)
La regla distributiva con 2 escalares y 1 vector: (n+m)v=nv+mv
La regla distributiva con 2 vectores y 1 escalar: (u+v)n=un+vn
¿Quieres practicar tus matemáticas vectoriales? Puedes aprender más aquí en Khan Academy, en nuestra unidad de Álgebra lineal: vectores.

Este curso de "Simulaciones Naturales" es un derivado de "La Naturaleza del Código" por Daniel Shiffman, usado bajo una Licencia Creative Commons Reconocimiento-NoComercial 3.0 Unported.

¿Quieres unirte a la conversación?

  • Avatar male robot hal style para el usuario diego bustillo
    aqui esta la respuesta del siguiente desafio (si es que alguien llega hasta aqui) a cambio pido un voto a favor.
    var v = new PVector(50, 75);

    var drawSaber = function() {
    background(0, 0, 0);
    // glow
    strokeWeight(8);
    stroke(107, 206, 219, 150);
    line(0, 400, v.x, 400-v.y);
    // blade
    stroke(255, 255, 255);
    strokeWeight(4);
    line(0, 400, v.x, 400-v.y);
    };

    drawSaber();

    keyPressed = function (){
    if (keyCode === 38){
    v.mult(2);
    } else if (keyCode === 40){
    v.div(2);
    }
    drawSaber();
    };
    buen dia
    (24 votos)
    Avatar Default Khan Academy avatar para el usuario
¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.