Contenido principal
Animación digital
Curso: Animación digital > Unidad 3
Lección 2: Codifica tu propia simulación- Empezar con partículas
- Paso 1 (partícula bajo gravedad)
- El sistema masa-resorte en una dimensión
- Paso 2 (sistema masa-resorte)
- El amortiguamiento
- Paso 3 (sistema masa-resorte amortiguado)
- El sistema masa-resorte en dos dimensiones
- Paso 4 (sistema masa-resorte en 2D)
- Un sistema de múltiples masas y resortes
- Paso 5 (un sistema de múltiples masas y resortes)
© 2023 Khan AcademyTérminos de usoPolítica de privacidadAviso de cookies
Empezar con partículas
Primero vamos a explorar una sola partícula bajo la influencia de la gravedad. Haz clic aquí para revisar la lección de Efectos.
¿Quieres unirte a la conversación?
- en que lenguaje de programación esta programado esto?(2 votos)
- okey en que lenguaje de programación esta programado esto?(1 voto)
- eto el lo mismo que en programación(1 voto)
- esto es programación?(1 voto)
- pero tambien como se ase eso debe de tener un parte no?(1 voto)
Transcripción del video
En la lección pasada creamos un modelo que
imitaba el comportamiento del cabello rizado; nuestro modelo usó una variedad de resortes
conectados con pesos para obtener este efecto. El objetivo de esta lección es escribir el
programa de computadora que hace posible esa simulación. Algo a considerar antes
de empezar esta lección es que vamos a utilizar algunas de las ecuaciones de
Newton para animar nuestra simulación, y en nuestra lección de efectos exploraremos
cómo funcionan estas ecuaciones. Para empezar, vamos a simular un modelo muy
sencillo, una partícula que sólo experimenta la gravedad y que se deja caer desde una posición
en la pantalla. El programa que voy a escribir para simular esta situación va a estar dividido
en dos partes: en la parte superior voy a poner nuestros ajustes iniciales, como la posición
inicial y la fuerza de gravedad; abajo de eso vamos a usar una función llamada Draw, o dibujar
en inglés, para hacer la animación. Ojo, en estos ejercicios que veremos, tanto las funciones como
las variables estarán en inglés. Primero vamos a definir nuestros ajustes iniciales. La gravedad
es la fuerza que vamos a querer controlar, así que vamos a definir una variable que se llame
Gravity, gravedad en inglés, y la hacemos igual a, digamos 10, podemos jugar con este valor después.
Vamos a querer otra variable para almacenar la masa de la partícula, Mass en inglés; por ahora
voy a hacer este igual a 30. Más una variable para la altura inicial desde donde dejamos caer
la partícula, a ésta la voy a llamar posición uai, posición ye en inglés. También vamos a necesitar
una velocidad inicial para nuestra partícula, a esta la voy a llamar Velocity uai, velocidad ye en
inglés. Y justo al inicio de nuestra simulación, justo antes de que la dejemos caer, la hacemos
igual a 0. Por último, necesitamos una manera de controlar la rapidez de nuestra simulación; esto
lo vamos a hacer con una variable llamada Time step, paso del tiempo en inglés. Piensa en Time
step como el intervalo de tiempo que transcurre entre cada actualización del dibujo. Un valor
más alto de Time step hará que la rapidez de la partícula entre distintos cuadros de animación
sea mayor, mientras que un valor menor de Time step hará que vaya más lento. Ahora, consideremos
lo que va dentro de la función de dibujo Draw. Cuando ejecutemos nuestro programa, la computadora
primero ejecutará los ajustes iniciales una vez y después va a iterar a través de la función Draw
muchas veces por segundo, así que cada cuadro de nuestra animación va a ser un sólo paso de esta
función Draw. Primero voy a calcular las fuerzas que actúan sobre la partícula. Por ahora, la
única fuerza que actúa sobre ella es la gravedad. La función apunta hacia abajo. Voy a almacenar
esta fuerza que apunta hacia abajo usando la variable llamada Force uai, fuerza ye en inglés.
A partir de la Segunda ley de Newton sabemos que esta fuerza es igual a la masa de la partícula
multiplicada por la aceleración vía la gravedad. A continuación voy a usar esa fuerza para definir
qué tan rápido se va a acelerar nuestra partícula hacia abajo, voy a almacenar este valor en una
nueva variable que se llama Aceleration uai, aceleración ye en inglés. Para hacer eso voy a
reacomodar la fórmula de f = m • a para obtener que Aceleration uai es igual a Force uai dividida
entre la masa. Observa que ya calculamos Force uai en el paso anterior. Ya que sabemos qué tan rápido
se acelera nuestra partícula, podemos actualizar su velocidad usando la fórmula velocidad es igual
a la velocidad más la aceleración multiplicada por el paso del tiempo, esto es Velocity Y
= Velocity Y + Aceleration Y • Time step. Derivamos esta fórmula en la elección de efectos.
Revísala para obtener más detalles. Ahora, observa que la variable de la velocidad del lado
derecho de esta ecuación inicialmente almacena el valor anterior de la velocidad, después de
que se ejecuta esta línea la variable de la velocidad del lado izquierdo almacena el valor
actualizado de la velocidad. Por último podemos usar esta velocidad para dibujar nuestra partícula
en una nueva posición usando la ecuación posición Y = posición Y más velocidad multiplicada por el
paso del tiempo, es decir, Position Y = Position Y + Velocity Y • Time step. Igual que antes,
la variable Position Y del lado derecho de la ecuación, inicialmente almacena el valor anterior
de la posición, una vez que se ejecuta esta línea, la variable Position Y del lado izquierdo almacena
el siguiente valor de la posición. Observa que cada paso en nuestro cálculo usa el resultado del
paso anterior: el cálculo inicial de la fuerza se usa para encontrar la aceleración, la aceleración
se usa para encontrar la velocidad y la velocidad se usa para actualizar la posición. Ahora la
parte divertida. Ahora, sólo dibujamos nuestra partícula en esa nueva posición. Para hacerlo,
simplemente dibujamos un círculo usando la variable Position Y como su altura. Aquí estoy
dibujando un círculo usando la función elipse, con el mismo alto y ancho. Ahora vamos a
ejecutar nuestro programa para ver qué pasa. Ups, quiero borrar el círculo anterior cada vez que
lo movemos, de modo que se vea como algo que está cayendo en vez de esta otra cosa. Esto lo voy a
arreglar al borrar o redibujar la pantalla cada vez que dibujo un nuevo círculo. Vamos a probar
eso. Bien. Si aumento la fuerza de gravedad, nuestra partícula cae más rápido, como lo
esperaríamos. Esas son las Leyes de Newton del movimiento en acción. Vamos a detenernos aquí
para que puedas sentirte cómodo con este código.