INFORMACIÓN DE LA ACTIVIDAD

MCU: Movimiento Circular Uniforme

 

Después de crear, como ya hemos visto, un registro del tiempo, colocamos un punto M (que representa una masa m) en una distancia r del punto O. Si llamamos ω a una velocidad angular constante (en radianes) y sustituimos en el deslizador anima la instrucción:

Valor(M, M + dt v)

por esta otra:  

Valor(M, Rota(M, dt ω, O))

entonces M se desplazará en un movimiento circular uniforme alrededor de O.

En vez de usar el comando Rota, podemos usar coordenadas polares. Veamos cómo. Así, podemos mover M con la instrucción: 

Valor(M, O + (r ; t ω))

El ángulo que forma M con el origen de coordenadas se obtiene con arg(M-O).

 

Para contar llevar un registro del tiempo empleado en cada vuelta y el número de vueltas realizadas, creamos las listas reg y regDif: 

reg = {0} 

regDif = Si(Longitud(reg) ≟ 1, {reg(1)}, Secuencia(reg(k) - reg(k + 1), k, 1, Longitud(reg) - 1))

Así, el tiempo medio de animación tras una vuelta completa, es decir, el período de la animación, vendrá dado por: 

T = media(regDif)

Hallamos la media de todos los períodos registrados porque aunque, teóricamente, todos ellos deberían ser iguales, como la animación no sigue un movimiento continuo, sino a intervalos dt, se pueden producir pequeñas desviaciones en cada vuelta). Ahora basta añadir al guion del deslizador anima las instrucciones:

Valor(reg, Si(y(M) < 0 ∧ y(Rota(M, dt ω, O)) ≥ 0, Añade(t, reg), reg))

Valor(vueltas, Si(y(M) < 0 ∧ y(Rota(M, dt ω, O)) ≥ 0, vueltas + 1, vueltas))

  • Nota: Como cualquier circunferencia mide 2π radianes, el período teórico ha de valer 2π/ω. En ese tiempo, M deberá recorrer la longitud de la circunferencia 2πr, así que el módulo de la velocidad tangencial v (que aparece en la construcción) ha de ser igual a 2πr entre 2π/ω, es decir, |v| = ω r.

 

GUION DEL DESLIZADOR anima

# Calcula los segundos dt transcurridos; para ello, suma un segundo si t1(1) < tt

Valor(tt, t1(1))

Valor(t1, Primero(TomaTiempo(), 3))

Valor(dt, (t1(1) < tt) + (t1(1) - tt)/1000)

 

# Registra el tiempo de la vuelta y el número de vueltas realizadas

 

Valor(reg, Si(arg(M - O) < 0 ∧ arg(M - O) + dt ω ≥ 0, Añade(t, reg), reg))

 

Valor(vueltas, Si(arg(M - O) < 0 ∧ arg(M - O) + dt ω ≥ 0, vueltas + 1, vueltas))

 

 

# Mueve M

 

Valor(M, O + (r; t ω))