
English: 
- [Instructor] In game development,
we use vectors to define
meshes, directions
and all manner of other calculations,
which makes them essential to understand.
A vector is a line drawn
between two points,
vectors also have a length
known as their magnitude.
Let's start off by simply
looking at 2D vectors.
A 2D vector is a way
of representing a point
from the origin, the 0,0 point on a graph,
to any point on a 2D plane.
Since it is from the origin,
it has an implied direction.
It's made up of two components, X and Y,
these represent the distance from zero
along the X and Y in each axis.
In this example, our
vector goes from the origin
to position 12, 5, the
length of the distance
between these points is
called the magnitude,
this can be worked out mathematically
by using Pythagoras' theorem,
which states that the
square of the hypotenuse
is equal to the sum of the
squares on the other two sides.

Spanish: 
[Instructor] En el 
desarrollo de videjuegos
usamos vectores para
definir mallas, direcciones
y muchos otros tipos de
cálculos,
lo que los hace algo fundamental
de entender.
Un vector es una línea que se 
dibuja entre dos puntos,
los vectores también tienen una
longitud, lo que se conoce como su magnitud.
Vamos a comenzar viendo
los vectores de 2D.
Un vector de 2D es una manera
de representar un punto
desde el origen, la coordenada
(0,0) en un gráfico,
a cualquier punto en un plano 
de 2D.
Ya que es desde el origen,
tiene una dirección implícita.
Está constituido de dos componentes, 
X y Y,
estos representan la distancia desde cero
a lo largo de los ejes horizontal y vertical.
En este ejemplo, nuestro vector
va desde el origen
a la posición 12,5, la longitud
de la distancia
entre estos puntos se llama 
la magnitud,
esto puede resolverse
matemáticamente
usando el teorema de Pitágoras,
el cual declara que el cuadrado
de la hipotenusa
es igual a la suma de los cuadrados
de los otros dos lados (catetos) respectivamente.

Spanish: 
La hipotenusa en las matemáticas
de vectores
es la magnitud que estamos tratando
de encontrar.
Imagina que hay dos personas
en un campo,
llamadas Charles y Quentin,
con una venganza mortal.
Ya que son caballeros, han
concordado a un duelo de pistolas
pero sus pistolas solo tienen un
rango de 12 unidades,
entonces ¿podrían dispararse el uno
al otro?
Vamos a encontrarlo.
Como puedes ver, la magnitud
es la raíz cuadrada
de la suma de la posición de X y Y
en la cuadrícula al cuadrado,
las cuales cuando se las suma, 
son 169,
la raíz cuadrada de 169 es 13,
por lo tanto Charles y Quentin
no podrán dispararse el uno al
otro, lo cual es excelente,
ya que la violencia no tiene 
lugar en este tutorial.
También, Charles también tenía
una ballesta escondida.
Vamos a echarle un vistazo
a otro ejemplo
de usar vectores para resolver un
problema en un espacio de 2D.
Ya hemos aprendido que los
vectores pueden usarse
para indicar una posición en
el espacio relativa al punto de origen,
pero también deberías saber que un 
objeto en movimiento
tiene una velocidad, un cambio 
de posición a medida que pasa el tiempo,

English: 
The hypotenuse in vector maths
is the magnitude that
we're trying to find.
Imagine that there are
two people in a field,
called Charles and Quentin,
with a lethal vendetta.
Being gentlemen, they've
agreed to a pistol duel,
but their guns only have
a range of 12 units,
so can they shoot one another?
Let's find out.
As you can see, the
magnitude is the square root
of the sum of the X and Y
positions on the grid squared,
which, when added together, makes 169,
the square root of 169 is
13, so Charles and Quentin
will be unable to shoot one
another, which is excellent,
as violence has no place in this tutorial.
Also, Charles totally had
a crossbow the whole time.
Let's look at another example
of using vectors to solve
a problem in 2D space.
We've already learned
that vectors can be used
to denote a position in space
relative to the origin point,
but you should also know
that a moving object
has a velocity, a change
in position over time,

Spanish: 
esto también puede expresarse
como un vector.
En este diagrama, Frederick
está en la posición 5, 6
y tiene una velocidad de 12, 5 
por hora,
esto significa que va a viajar
en una dirección
que está 12 unidades más adelante
en el eje horizontal
y cinco en el eje vertical,
entonces, para poder encontrar
su posición después de una hora,
vamos a añadir su vector de posición
actual a su vector de velocidad
para descubrir dónde llegará,
17, 11.
Recuerda que todos los vectores
están expresados
con relación al origen, el punto
cero en el espacio
y esto no es diferente a
los vectores de velocidad.
De la misma manera que 5, 6
es una posición relativa a la
posición cero,
12, 5 es una velocidad relativa
a cero movimiento,
entonces, mientras que él podría
tener la misma velocidad,
17,11 es el nuevo vector de la 
posición de Frederick después de una hora.
Esto es muy útil en nuestras tareas como
desarrolladores de juegos
que involucran predicciones.
Debes tomar en cuenta
que los componentes de la
posición final

English: 
this can also be expressed as a vector.
In this diagram, Frederick
is at position 5, 6
and has a velocity of 12, 5 per hour,
this means that he will
travel in a direction
that is 12 further in the X-axis
and five further in the Y-axis,
so, in order to find his
new position after one hour,
we'd add his current position
vector to his velocity vector
to discover where he will end up, 17, 11.
Remember that all vectors are expressed
relative to the origin,
the zero point in space
and this is no different
for velocity vectors
in the same way that 5, 6
is a position relative
to the zero position,
12, 5 is a velocity
relative to zero motion,
so whilst he may still
have the same velocity,
17, 11 is Frederick's new
position vector after one hour.
This is useful in game development tasks
that involve prediction, you should note
that the components of the final position

Spanish: 
son iguales a la suma de los 
componentes de los dos vectores,
5 + 12 = 17 en el eje horizontal
y 6 + 5 = 11 en el eje vertical.
Esto también se aplica a la
sustracción,
Los vectores tridimensionales 
también funcionan como los de 2D,
pero extrapolados en el eje Z, 
el mismo que representa profundidad.
Los ejes vertical y horizontal
conforman un plano horizontal
y el eje vertical (o de las Y) es el
que apunta hacia arriba.
Unity trabaja en un sistema
de coordenadas de mano izquierda
eso significa que si levantas tu mano
izquierda
con tu dedo índice apuntando hacia
arriba
y tu pulgar apuntando hacia afuera
formando una L
y tu dedo medio apuntando en la
dirección opuesta a ti,
entonces el pulgar representa el
eje horizontal o de la X.
el índice el eje vertical o 
de las Y
y el dedo medio el eje Z.
Este ademán puede
ser muy útil
para recordarte del orden de 
los ejes X, Y y Z.
Ya que Z representa la 
profundidad,
en nuestro ejemplo previo,
Charles y Quentin
habrían estado de pie en
el plano X/Y

English: 
are equal to the sum of the
components of the two vectors,
5 + 12 is 17 in the X-axis
and 6 + 5 is 11 in the Y-axis.
This also applies to subtraction,
three-dimensional vectors
work the same as 2D,
but extrapolated into the
Z-axis, which represents depth.
The X and Z axes make
up a horizontal plane
and Y is the direction that points up.
Unity works on a left-handed
coordinate system,
this means that if you hold your left hand
with your index finger pointed upwards
and your thumb pointed
out to form an L shape
and your middle finger
pointing away from you,
then the thumb represents the X-axis,
the index finger, the Y-axis
and the middle finger, the Z-axis.
This hand gesture can be helpful
to remind you of the order
of the axes X, Y and Z.
Given that Z represents depth,
in our previous example,
Charles and Quentin
would have actually been
stood on the X/Z plane,

English: 
keeping in mind that any
coordinates stated in 3D
will be ordered X/Y/Z,
Quentin would have been stood
at 0, 0, 0, the 3D origin
and Charles at 12, 0, 5.
To make things more three-dimensional,
we could imagine that Charles
was on a higher vantage point,
now stood upon his seven units or podium,
Charles is at position 12, 7, 5.
The calculation to find
the magnitude of the vector
between Charles and Quentin
is the same as in 2D,
but now features the Z-axis.
Unity makes it easy to
perform calculations like this
with its helper function,
Vector3.magnitude,
see the documentation linked
below for more details.
There are a couple of useful
functions for 3D vectors,
the Dot and Cross Products.
The Dot Product takes two vectors
and produces a scaler, a
single value, from them.
To find the Dot Product from two vectors,
we take their component parts,
the X, Y and Z values and
multiply them together

Spanish: 
teniendo en cuenta que cualquier
coordenada declarada en 3D
tendrá el orden de X/Y/Z,
Quentin habría estado de pie
en el 0, 0, 0, el origen 3D
y Charles en 12, 0, 5.
Para hacer las cosas un poco
más tridimensionales,
podríamos imaginar que Charles
estaba en un punto de observación más alto,
ahora de pie en su podio a 
siete unidades,
Charles está en la posición
12, 7, 5.
El cálculo para encontrar la
magnitud del vector
entre Charles y Quentin 
es la misma que en 2D
pero ahora presenta el
eje Z.
Unity hace que cálculos
como este sean muy fáciles
con su función de ayuda
Vector3.magnitude,
consulta la documentación 
vinculada al final para obtener más detalles.
Hay un par de funciones muy
útiles para vectores 3D,
los productos Dot (punto)
y Cross (cruz).
El Dot Product (Producto punto) toma dos
vectores
y produce un scaler (escalador), un 
solo valor de ellos.
Para encontrar el Dot Product
de dos vectores
tomamos sus partes componentes,
los valores de X, Y y Z y los
multiplicamos juntos

English: 
to find the sum of the resultant values.
This is expressed, for example,
as (AxBx) + (AyBy) + (AzBz),
with this product you
can find out information
about the two vectors you've specified.
One example of this is finding out
whether the two vectors are
perpendicular to one another,
if the Dot Product of
two vectors equals zero,
the vectors are perpendicular.
In this example, we have
two vectors, A and B,
vector A is 0, 7, 1, B is 0, 0, 6.
We can see in this example
that the sum of the
multiplied components is six,
which means that the vectors
are not perpendicular.
If vector A was 0, 7, 0 and B was 0, 0, 6,
then we can see that the
Dot Product equals zero
and the vectors are indeed perpendicular.
Here is another example
of using the Dot Product in this way,

Spanish: 
para encontrar la suma de 
los resultados.
Esto se expresa
como (AxBx) + (AyBy) + (AzBz),
con este producto puedes
descubrir información
sobre los dos vectores
que has especificado.
Un ejemplo de esto es
enterarse 
si los dos vectores son
perpendiculares.
Si el Dot Product de dos
vectores es cero
los vectores son 
perpendiculares.
En este ejemplo tenemos
dos vectores A y B
el vector A es 0, 7, 1,
B es 0, 0 , 6.
Podemos ver en este
ejemplo
que la suma de los 
componentes multiplicados es seis,
lo que significa que los vectores
no son perpendiculares.
Si el vector A era 0, 7, 0 y 
B era 0, 0, 6,
entonces podemos ver que el 
Dot Product es igual a cero
y que los vectores son, en
efecto, perpendiculares.
Aquí tenemos otro
ejemplo
que usa el Dot Product de 
esta manera,

English: 
this time vector A is 4,
5, 11 and B is -3, -2, 2.
Multiplying these components
give us -12, -10, 22,
the sum of which is zero,
so these two vectors
are also perpendicular.
An example of using the Dot Product
could be when creating a flight simulator,
you would check the world up vector
with the forward vector of the plane,
if the two were perpendicular,
if the Dot Product equaled zero,
then the plane should have
the least amount of drag.
As the Dot Product increases
in a positive value,
we would know that the plane is pulling up
and we could add more drag.
If the Dot Product increases
in negative values,
we would know that the plane is in a dive.
Unity has a helper function
to perform Dot Product
calculations easily,
for details of this, see the
documentation link below.
The Cross Product is a different way
of combining two vectors,
instead of producing a
scaler, a single value,

Spanish: 
esta vez el vector A es 4, 5, 11
y B es -3, -2, 2
Multiplicar estos componentes 
nos da -12, -10, 22
cuya suma es cero,
entonces estos vectores
también son perpendiculares.
Un ejemplo de usar 
el Dot Product
sería cuando estamos creando
un simulador de vuelo,
verificarías el vector que 
apunta hacia arriba
con el vector delantero
del avión,
si los dos son perpendiculares,
si el Dot Product es igual
a cero,
entonces el avión no debería
tener ninguna resistencia aerodinámica.
Mientras que el Dot Product
incremente en un valor positivo,
sabremos entonces que el avión
está levantando vuelo
y que podríamos añadir
algo más de arrastre.
Si el Dot Product incrementa
en valores negativos,
sabemos que el avión está 
de clavado.
Unity tiene una función
auxiliar
para realizar cálculos
de Dot Product fácilmente,
para obtener más detalles sobre 
esto consulta la documentación vinculada en la parte inferior de la pantalla.
Cross Product (Producto cruz) es una manera diferente
de combinar dos vectores
en vez de producir un scaler, 
un solo valor,

English: 
the Cross Product produces
another vector, specifically,
a vector that is perpendicular
to the original two.
For example, if we took
vector A and vector B
and crossed them, then the
Product would be vector C,
one that is perpendicular to A and B,
this is mathematically denoted
by the caret symbol,
the up arrow shown here.
Since Unity's coordinate
system is left-handed,
so is its Cross Product,
putting your left hand into the same pose
as to determine the alignment of the axes,
you can determine the direction
of a Cross Product vector.
In this example, your
thumb and index finger
represent vectors A and
B, the known vectors
and your middle finger represents
the Cross Product result, C.
To look into the Cross Product in detail,
we would arrange our vector
A and B components like this,
but how does it work mathematically?
To work out the Cross Product,
we'd place our two
vectors next to each other
and then repeat this below.

Spanish: 
el Cross Product produce 
otro vector, específicamente
un vector que es perpendicular
a los dos originales.
Por ejemplo, si tomamos
el vector A y el vector B
y los cruzamos, entonces el
producto sería el vector C,
uno que es perpendicular
a A y B,
esto se indica matemáticamente
con el signo de intercalación,
la flecha hacia arriba que se muestra aquí.
Ya que el sistema de coordenadas
de Unity es uno de mano izquierda,
su Cross Product también lo es,
si pones tu mano izquierda en la
misma pose,
como si fueras a determinar el 
alineamiento de los ejes,
puedes determinar la dirección
de un vector Cross Product.
En este ejemplo, tu pulgar
y tu dedo índice
representan los vectores A y B,
los vectores conocidos
y tu dedo medio representa
el resultado del Cross Product, C.
Para mirar al Cross Product
detalladamente,
arreglaríamos los componentes 
vectores A y B así,
pero ¿cómo funciona matemáticamente?
Para encontrar el Cross Product,
pondríamos nuestros dos 
vectores uno junto al otro
y luego repetir esto
abajo.

English: 
>From here, we can combine the components
one at a time to find the Cross Product.
First, we multiply Ay and Bz,
we then subtract Az multiplied by By,
this gives us the X component
of the Cross Product.
Next, we do the same with Az and Bx
and Ax and Bz to give us the Y component.
Finally, we do the same
again with Ax and By
and Ay and Bx to get the Z component.
The good news is that whilst
this is a detailed calculation,
Unity has another helper
function to perform this for you,
it looks like this.
One example of using the Cross Product
is finding the axis around
which to apply torque
in order to rotate a tank's turret.
Given that you have the direction
that the turret is currently facing
and the direction that it needs to face,
you would cross these two vectors
to find the axis around which
to apply rotational torque.

Spanish: 
De aquí, podemos combinar
los componentes
uno por uno para encontrar
el Cross Product.
Primero, multiplicamos Ay y Bz,
luego sustraemos Az multiplicado
por By,
esto nos da el componente X del
Cross Product.
Luego, hacemos lo mismo con
Az y Bx
y Ax y Bz nos dan el componente Y.
Por último hacemos lo mismo
otra vez con Ax y By
y Ay y Bx para obtener el
componente Z.
Lo bueno es que mientras 
esto es un cálculo detallado,
Unity tiene otra función auxiliar
que hace esto por ti,
luce así.
Un ejemplo de usar el 
Cross Product
es para encontrar el eje
alreadedor del cual aplicar torsión
para rotar la torreta de un tanque.
Ya que tienes la dirección
hacia la cual está apuntando la 
torreta
y la dirección a la que necesita
mirar, 
puedes cruzar estos dos vectores
para encontrar el eje alrededor del 
cual necesitas aplicar torsión rotativa.
