Contenido principal
Programación de computadoras
Curso: Programación de computadoras > Unidad 5
Lección 4: Vectores- Introducción a vectores
- Desafío: caminante vectorial
- Más matemáticas vectoriales
- Desafío: sable de luz
- Magnitud de un vector y normalización
- Desafío: visualizador de magnitud
- Movimiento de vectores
- Desafío: automóvil que frena
- Funciones estáticas contra métodos de instancia
- Desafío: funciones estáticas
- Movimiento interactivo de vectores
- Desafío: perseguidor del ratón
- Proyecto: criaturas computacionales
© 2023 Khan AcademyTérminos de usoPolítica de privacidadAviso de cookies
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 vectoressub()
: restar vectoresmult()
: escalar el vector con una multiplicacióndiv()
: escalar el vector con una divisiónmag()
: calcular la magnitud de un vectornormalize()
: normalizar el vector a una longitud unitaria de 1limit()
: limitar la magnitud de un vectorheading2D()
: el rumbo 2D de un vector expresado como un ángulodist()
: la distancia euclidiana entre dos vectores (considerados como puntos)angleBetween()
: encontrar el ángulo entre dos vectoresdot()
: el producto punto de dos vectorescross()
: 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
se puede escribir como:
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:
La regla de asociatividad:
Esas mismas reglas se cumplen al hacer matemáticas con vectores:
La regla de conmutatividad:
La regla de asociatividad:
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.
Se puede escribir como:
Veamos un ejemplo con notación de vectores.
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:
La regla distributiva con 2 escalares y 1 vector:
La regla distributiva con 2 vectores y 1 escalar:
¿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?
- 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)