Contenido principal
Programación de computadoras
Curso: Programación de computadoras > Unidad 5
Lección 7: Oscilaciones- Amplitud y periodo de oscilación
- Desafío: gusanito
- Oscilación con velocidad angular
- Desafío: paseo de naves espaciales
- Ondas
- Desafío: muchas ondas
- Trigonometría y fuerzas: el péndulo
- Desafío: marioneta de péndulos
- Fuerzas en un resorte
- Proyecto: criaturas que se enrollan, se arrastran y dan vueltas
© 2023 Khan AcademyTérminos de usoPolítica de privacidadAviso de cookies
Oscilación con velocidad angular
Un entendimiento de los conceptos de oscilación, amplitud y frecuencia/periodo suele ser necesario en el curso de la simulación de comportamientos reales. Sin embargo, hay una forma un poco más fácil de volver a escribir el ejemplo anterior con el mismo resultado. Echemos un vistazo más a nuestra fórmula de oscilación:
var x = amplitude * sin(TWO_PI * frameCount / period);
Y vamos a volver a escribirla de una manera un poco diferente:
var x = amplitude * sin(un valor que incrementa lentamente);
Si nos preocupa definir precisamente el periodo de oscilación en términos de cuadros de animación, podríamos necesitar la fórmula de la manera en que la escribimos primero, pero fácilmente podemos volver a escribir nuestro ejemplo usando el concepto de velocidad angular (y aceleración) de la lección de movimiento angular. Al suponer que:
var angle = 0;
var aVelocity = 0.03;
...en
draw()
, podemos simplemente decir que:angle += aVelocity;
var x = amplitude * sin(angle);
...donde
angle
es nuestro “un valor que incrementa lentamente”.Aquí está nuestro programa modificado:
Solo porque no lo estamos refiriendo directamente no significa que hemos eliminado el concepto de periodo. Después de todo, mientras más grande sea la velocidad angular, más rápido oscilará el círculo (por lo tanto, disminuirá el periodo). De hecho, el número de veces necesarias para sumar la velocidad angular para llegar a
TWO_PI
es el periodo o:periodo = TWO_PI / velocidad angular
Vamos a ampliar un poco más este ejemplo y crear un objeto
Oscillator
(Oscilador en inglés). Y vamos a suponer que queremos que la oscilación ocurra a lo largo del eje x (como arriba) y del eje y. Para hacer esto, necesitaremos dos ángulos, dos velocidades angulares y dos amplitudes (una para cada eje). ¡Otra oportunidad perfecta para PVector
!Lee el código en el siguiente programa:
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?
- someone knows the angule for rotate?(1 voto)