Introducció
El Moviment Rectilini Uniformement Accelerat (MRUA) és un tipus de moviment en el qual un objecte es desplaça en una línia recta amb una acceleració constant. Aquest concepte és fonamental en la física clàssica i té aplicacions directes en el desenvolupament de videojocs, especialment en la simulació de moviments realistes.
Conceptes Bàsics
Definicions Clau
- Velocitat Inicial (\(v_0\)): La velocitat de l'objecte en el moment inicial (t = 0).
- Acceleració (\(a\)): La taxa de canvi de la velocitat de l'objecte amb el temps. En MRUA, aquesta és constant.
- Temps (\(t\)): El període durant el qual l'objecte està en moviment.
- Desplaçament (\(s\)): La distància recorreguda per l'objecte en una direcció específica.
- Velocitat Final (\(v\)): La velocitat de l'objecte en un moment determinat.
Equacions Fonamentals
Les equacions que regeixen el MRUA són:
-
Velocitat Final: \[ v = v_0 + a \cdot t \]
-
Desplaçament: \[ s = v_0 \cdot t + \frac{1}{2} a \cdot t^2 \]
-
Velocitat Final en funció del Desplaçament: \[ v^2 = v_0^2 + 2a \cdot s \]
Aplicació en Videojocs
Simulació de Moviment
En els videojocs, el MRUA es pot utilitzar per simular moviments com la caiguda lliure, l'acceleració d'un vehicle, o el llançament d'un objecte. A continuació es mostra un exemple pràctic de com implementar MRUA en un motor de videojocs com Unity utilitzant C#.
Exemple de Codi en Unity
using UnityEngine; public class MRUAMovement : MonoBehaviour { public float initialVelocity = 0f; // Velocitat inicial public float acceleration = 9.8f; // Acceleració constant (per exemple, gravetat) private float currentVelocity; // Velocitat actual private float displacement; // Desplaçament void Start() { currentVelocity = initialVelocity; displacement = 0f; } void Update() { float deltaTime = Time.deltaTime; // Temps transcorregut des de l'últim frame // Actualitzar la velocitat actual currentVelocity += acceleration * deltaTime; // Calcular el desplaçament displacement += currentVelocity * deltaTime + 0.5f * acceleration * Mathf.Pow(deltaTime, 2); // Aplicar el desplaçament a l'objecte transform.position = new Vector3(transform.position.x, transform.position.y + displacement, transform.position.z); } }
Explicació del Codi
-
Variables:
initialVelocity
: Velocitat inicial de l'objecte.acceleration
: Acceleració constant (per exemple, la gravetat).currentVelocity
: Velocitat actual de l'objecte.displacement
: Desplaçament de l'objecte.
-
Start():
- Inicialitza
currentVelocity
ambinitialVelocity
. - Inicialitza
displacement
a 0.
- Inicialitza
-
Update():
- Calcula el temps transcorregut des de l'últim frame (
deltaTime
). - Actualitza la velocitat actual (
currentVelocity
) utilitzant l'equació de la velocitat final. - Calcula el desplaçament utilitzant l'equació del desplaçament.
- Aplica el desplaçament a la posició de l'objecte.
- Calcula el temps transcorregut des de l'últim frame (
Exercicis Pràctics
Exercici 1: Caiguda Lliure
Simula la caiguda lliure d'un objecte des d'una alçada determinada. Calcula el temps que triga a arribar al terra i la velocitat amb la qual impacta.
Solució
-
Dades:
- Alçada inicial (\(h\)): 100 metres
- Acceleració (\(a\)): 9.8 m/s² (gravetat)
- Velocitat inicial (\(v_0\)): 0 m/s
-
Equacions:
- Temps de caiguda (\(t\)): \( t = \sqrt{\frac{2h}{a}} \)
- Velocitat d'impacte (\(v\)): \( v = v_0 + a \cdot t \)
-
Càlculs:
- \( t = \sqrt{\frac{2 \cdot 100}{9.8}} \approx 4.52 \) segons
- \( v = 0 + 9.8 \cdot 4.52 \approx 44.3 \) m/s
Exercici 2: Acceleració d'un Vehicle
Un vehicle accelera des de l'aturada amb una acceleració constant de 3 m/s². Calcula la distància recorreguda i la velocitat final després de 10 segons.
Solució
-
Dades:
- Acceleració (\(a\)): 3 m/s²
- Temps (\(t\)): 10 segons
- Velocitat inicial (\(v_0\)): 0 m/s
-
Equacions:
- Desplaçament (\(s\)): \( s = v_0 \cdot t + \frac{1}{2} a \cdot t^2 \)
- Velocitat final (\(v\)): \( v = v_0 + a \cdot t \)
-
Càlculs:
- \( s = 0 \cdot 10 + \frac{1}{2} \cdot 3 \cdot 10^2 = 150 \) metres
- \( v = 0 + 3 \cdot 10 = 30 \) m/s
Errors Comuns i Consells
- Oblidar el Temps Transcorregut: Assegura't de calcular correctament el temps transcorregut (
deltaTime
) en cada frame per obtenir resultats precisos. - Confondre Velocitat i Desplaçament: Recorda que la velocitat és la taxa de canvi de la posició, mentre que el desplaçament és la distància recorreguda.
- No Considerar la Direcció: En MRUA, la direcció del moviment és important. Assegura't de tenir en compte els signes positius i negatius per a la velocitat i l'acceleració.
Resum
En aquesta secció, hem explorat el Moviment Rectilini Uniformement Accelerat (MRUA), les seves equacions fonamentals i la seva aplicació en el desenvolupament de videojocs. Hem vist com implementar MRUA en Unity amb un exemple pràctic i hem resolt exercicis per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per simular moviments realistes en els teus projectes de videojocs.
Física de Videojocs
Mòdul 1: Introducció a la Física en Videojocs
Mòdul 2: Cinemàtica i Dinàmica
- Moviment Rectilini Uniforme (MRU)
- Moviment Rectilini Uniformement Accelerat (MRUA)
- Lleis de Newton
- Moviment Circular
Mòdul 3: Col·lisions i Respostes
Mòdul 4: Física de Rigid Bodies
- Introducció a Rigid Bodies
- Simulació de Rigid Bodies
- Interaccions entre Rigid Bodies
- Constraints i Joints