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:

  1. Velocitat Final: \[ v = v_0 + a \cdot t \]

  2. Desplaçament: \[ s = v_0 \cdot t + \frac{1}{2} a \cdot t^2 \]

  3. 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

  1. 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.
  2. Start():

    • Inicialitza currentVelocity amb initialVelocity.
    • Inicialitza displacement a 0.
  3. 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.

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ó

  1. Dades:

    • Alçada inicial (\(h\)): 100 metres
    • Acceleració (\(a\)): 9.8 m/s² (gravetat)
    • Velocitat inicial (\(v_0\)): 0 m/s
  2. Equacions:

    • Temps de caiguda (\(t\)): \( t = \sqrt{\frac{2h}{a}} \)
    • Velocitat d'impacte (\(v\)): \( v = v_0 + a \cdot t \)
  3. 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ó

  1. Dades:

    • Acceleració (\(a\)): 3 m/s²
    • Temps (\(t\)): 10 segons
    • Velocitat inicial (\(v_0\)): 0 m/s
  2. 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 \)
  3. 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

  1. Oblidar el Temps Transcorregut: Assegura't de calcular correctament el temps transcorregut (deltaTime) en cada frame per obtenir resultats precisos.
  2. 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.
  3. 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.

© Copyright 2024. Tots els drets reservats