1.1 Introducción
Imaginá que estás programando un vehículo que se desplaza por una pantalla. Podés cambiar su posición para que parezca moverse, pero enseguida aparecen preguntas: ¿cuánto debe avanzar en un segundo?, ¿qué sucede si aumenta su velocidad?, ¿cómo relacionamos los metros del recorrido con los píxeles de la pantalla?
La física ofrece conceptos y relaciones para responder preguntas sobre el mundo natural. Estudia fenómenos como el movimiento, las interacciones entre cuerpos, la energía, el sonido y la luz. Al programar, podemos representar algunos de esos fenómenos mediante datos y reglas.
En este curso usaremos JavaScript. En este primer tema vamos a reconocer para qué sirve la física y a llevar una regla sencilla de movimiento al código. Los conceptos se estudiarán con más detalle en los temas siguientes.
1.2 Cuándo resulta útil la física
La física resulta especialmente útil cuando el programa representa un sistema físico, utiliza mediciones o necesita reproducir un comportamiento relacionado con el mundo real.
| Aplicación | Problema | Conceptos involucrados |
|---|---|---|
| Videojuegos | Representar un salto o el choque entre objetos. | Movimiento, gravedad y colisiones. |
| Simulaciones educativas | Explorar cómo cambia un recorrido al modificar la velocidad. | Posición, tiempo y modelos físicos. |
| Robótica | Interpretar mediciones y describir el desplazamiento de un robot. | Unidades, movimiento y fuerzas. |
| Gráficos por computadora | Calcular cómo se ilumina una superficie. | Luz, reflexión y materiales. |
| Audio digital | Representar un tono y modificar sus características. | Ondas y frecuencia. |
| Aplicaciones con sensores | Mostrar e interpretar lecturas de temperatura o aceleración. | Magnitudes, medición e incertidumbre. |
No todos los programas necesitan conocimientos de física. Para desarrollar un formulario de registro, por ejemplo, normalmente no hace falta estudiar movimiento o energía. La profundidad necesaria depende del problema que queramos resolver.
1.3 Física, matemática y programación
Estas tres áreas se complementan. La física propone una descripción del fenómeno y establece bajo qué condiciones podemos utilizarla. La matemática permite expresar relaciones entre cantidades. La programación convierte esas relaciones en instrucciones ejecutables.
Por ejemplo, multiplicar dos números es una operación matemática. Si esos números representan una velocidad constante y un intervalo de tiempo, el resultado tiene un significado físico: el desplazamiento durante ese intervalo. El programa realiza la multiplicación, pero somos nosotros quienes debemos elegir los datos y comprobar que la relación sea adecuada.
1.4 Representar la realidad mediante un modelo
Un modelo físico es una representación simplificada de un sistema que conserva las características relevantes para la pregunta que queremos responder.
Para estimar dónde estará un carrito después de unos segundos, podemos suponer que se mueve en línea recta y mantiene una velocidad constante. En ese caso, no necesitamos representar el giro de sus ruedas ni los detalles de su motor.
Esta simplificación tiene límites. Si el carrito frena, gira o cambia de velocidad, la regla de movimiento constante ya no describe todo el recorrido. Antes de usar una fórmula debemos identificar sus supuestos: las condiciones que estamos dando por válidas.
Un modelo más detallado requiere más datos y cálculos. Conviene elegir el nivel de detalle que permita responder la pregunta con la precisión necesaria.
1.5 Los números necesitan significado y unidades
Una variable que contiene el número 5 no indica, por sí sola, si representa cinco metros, cinco segundos o cinco kilogramos. En un programa de física, ese significado forma parte del problema.
Podemos aclararlo mediante nombres como posicionInicialM, velocidadMps y tiempoS. En estos nombres, M indica metros, Mps metros por segundo y S segundos. Es una convención para nuestros ejemplos; JavaScript sigue almacenando números y no comprueba sus unidades automáticamente.
En los cálculos también debemos usar unidades compatibles. Si una velocidad está expresada en metros por segundo, el intervalo de tiempo debe expresarse en segundos para obtener un desplazamiento en metros.
1.6 Primer ejemplo: calcular una posición
Un carrito parte de la posición 2 m y se mueve en línea recta con velocidad constante de 3 m/s, en el sentido positivo del eje que elegimos. Queremos conocer su posición después de 4 s.
Una velocidad de 3 m/s significa, en este caso, que su posición aumenta tres metros por cada segundo transcurrido. Para este modelo utilizamos:
Durante los cuatro segundos, el carrito se desplaza 12 m. Como comenzó en la posición 2 m, termina en la posición 14 m. La posición final y el desplazamiento son cantidades diferentes.
const posicionInicialM = 2;
const velocidadMps = 3;
const tiempoS = 4;
const desplazamientoM = velocidadMps * tiempoS;
const posicionFinalM = posicionInicialM + desplazamientoM;
console.log("Desplazamiento:", desplazamientoM, "m");
console.log("Posición final:", posicionFinalM, "m");
El programa muestra Desplazamiento: 12 m y Posición final: 14 m. Podés ejecutar el ejemplo con el botón Ejecutar y hacer clic en el código para modificar los valores.
Probá cambiar la velocidad a 0: el carrito debe permanecer en 2 m. Luego probá con -3: el resultado será −10 m, porque el movimiento ocurre en el sentido negativo del eje. Una posición negativa indica una ubicación respecto del origen elegido.
1.7 Del cálculo aislado a una secuencia de estados
Una simulación calcula cómo evoluciona la representación de un sistema según un modelo. Para observar el recorrido del carrito podemos calcular su posición al inicio y después de cada segundo.
const posicionInicialM = 2;
const velocidadMps = 3;
for (let tiempoS = 0; tiempoS <= 4; tiempoS += 1) {
const posicionM = posicionInicialM + velocidadMps * tiempoS;
console.log("Tiempo:", tiempoS, "s | Posición:", posicionM, "m");
}
Las posiciones obtenidas son 2, 5, 8, 11 y 14 m, correspondientes a los tiempos 0, 1, 2, 3 y 4 s. El incremento es siempre de 3 m porque elegimos intervalos de un segundo y una velocidad constante.
El bucle calcula todos los resultados inmediatamente: no espera un segundo real entre cada cálculo. La variable tiempoS representa tiempo del modelo. Para mostrar una animación habría que decidir, además, cuándo dibujar cada estado en pantalla.
Aquí calculamos cada posición directamente desde la posición inicial. Más adelante estudiaremos cómo actualizar un estado paso a paso cuando las reglas del movimiento sean más complejas.
1.8 Separar el cálculo físico de la pantalla
La posición física puede expresarse en metros, mientras que una pantalla utiliza píxeles. Para relacionarlas elegimos una escala. Supongamos que cada metro se representa mediante 20 píxeles y que el origen físico coincide con la coordenada horizontal 0 de la pantalla.
const posicionM = 14;
const pixelesPorMetro = 20;
const posicionPantallaPx = posicionM * pixelesPorMetro;
console.log("Coordenada horizontal:", posicionPantallaPx, "px");
El resultado es 280 px. Si cambiamos la escala a 10 píxeles por metro, el resultado será 140 px. El carrito sigue estando en la posición física 14 m; cambia su representación visual.
Este ejemplo solo calcula una coordenada, no dibuja el carrito. Mantener separadas las magnitudes físicas y la representación gráfica facilita cambiar el tamaño de la vista sin alterar el modelo.
1.9 Simulación interactiva: un carrito en movimiento
Experimentá con el mismo modelo del ejemplo: un carrito que se mueve en línea recta con velocidad constante. Elegí sus condiciones iniciales y presioná Iniciar. También podés mover el control de tiempo para inspeccionar cualquier instante sin reproducir la animación.
posición = posición inicial + velocidad × tiempo
2,00 m + (3,00 m/s) × 0,00 s = 2,00 m
Listo para iniciar. El carrito parte de 2 m.
La marca discontinua señala la posición inicial y el centro del carrito indica su posición actual. La flecha muestra el desplazamiento desde el inicio. El eje se ajusta al recorrido previsto al cambiar los parámetros, y mantiene su escala durante la reproducción; las medidas se leen en metros.
La reproducción avanza un segundo simulado por cada segundo real mientras está activa. Al cambiar la posición inicial, la velocidad o la duración, el tiempo vuelve a cero. Al alcanzar la duración elegida, termina la reproducción: eso no representa un frenado físico del carrito.
- Reproducí el ejemplo: con 2 m de posición inicial, 3 m/s y 4 s, debe terminar en 14 m.
- Probá velocidad cero: el reloj avanza, pero el carrito permanece en su posición inicial.
- Invertí el sentido: elegí −3 m/s. A los 4 s, la posición será −10 m y el desplazamiento será −12 m.
- Duplicá la duración: con los valores iniciales y 8 s, el desplazamiento será 24 m y la posición final, 26 m.
1.10 Comprobar algo más que la sintaxis
Un programa puede ejecutarse sin errores y producir un resultado físicamente incorrecto. Por eso conviene comprobar tanto el código como el significado de sus cálculos.
- Unidades: no mezclar una velocidad en metros por segundo con un tiempo en minutos sin convertirlo.
- Condiciones iniciales: al evaluar el tiempo cero, la posición debe coincidir con la posición inicial.
- Casos sencillos: con velocidad cero, la posición debe permanecer constante en este modelo.
- Relaciones esperadas: con la misma velocidad constante, duplicar el tiempo duplica el desplazamiento; no necesariamente duplica la posición final.
- Supuestos: si el objeto acelera o frena, hay que revisar el modelo de velocidad constante.
También podemos comparar los resultados con mediciones. Una diferencia puede provenir de un error de programación, de los datos medidos o de las simplificaciones del modelo. Aprenderemos a distinguir estas posibilidades a lo largo del curso.
1.11 Realismo y comportamiento deseado
En un simulador educativo buscamos que los resultados representen el fenómeno dentro de las condiciones indicadas. En un videojuego también intervienen decisiones de diseño: un personaje puede saltar más alto o cambiar de dirección en el aire para que el control resulte más cómodo.
Conocer física ayuda a reconocer qué comportamiento se desprende del modelo y qué comportamiento introducimos deliberadamente. Incluso cuando elegimos una regla ficticia, entender posición, velocidad y tiempo permite implementarla de forma coherente.
Para empezar alcanza con operaciones básicas, lectura de fórmulas y nociones de programación. Incorporaremos las herramientas necesarias de manera gradual.
1.12 Ejercicio propuesto
Un robot comienza en la posición 5 m y se mueve en línea recta con velocidad constante de 2 m/s en el sentido positivo. Calculá su desplazamiento y su posición después de 6 s.
- Identificá los tres datos y sus unidades.
- Calculá el resultado a mano y después escribí el programa.
- Repetí el cálculo con velocidad cero y explicá el resultado.
- Indicá qué supuesto dejaría de cumplirse si el robot comenzara a frenar.
Ver solución y explicación
El desplazamiento es 2 m/s × 6 s = 12 m. La posición final es 5 m + 12 m = 17 m.
const posicionInicialM = 5;
const velocidadMps = 2;
const tiempoS = 6;
const desplazamientoM = velocidadMps * tiempoS;
const posicionFinalM = posicionInicialM + desplazamientoM;
console.log("Desplazamiento:", desplazamientoM, "m");
console.log("Posición final:", posicionFinalM, "m");
Con velocidad cero, el desplazamiento es 0 m y la posición final sigue siendo 5 m. Si el robot empieza a frenar, su velocidad cambia: ya no podemos describir todo el intervalo usando una única velocidad constante igual a la inicial.
1.13 Ideas para recordar
- La física ayuda a describir fenómenos y predecir su evolución mediante modelos.
- Cada modelo tiene supuestos y un alcance que debemos conocer.
- Los valores del programa necesitan un significado físico y unidades compatibles.
- El tiempo simulado y las coordenadas físicas se pueden tratar por separado del tiempo real y de la pantalla.
- Comprobar resultados requiere revisar el código, los datos y el modelo utilizado.
En el próximo tema estudiaremos fenómenos físicos: observación, experimentación y predicción, para comprender cómo se construyen y se ponen a prueba las explicaciones físicas.