Pesanteur

  • Découverte

Voici un exercice clair, complet, prêt à l'emploi avec Pygame qui permettra à tes élèves de mieux comprendre la chute libre en simulant la pesanteur sur différents corps célestes.


Exercice : Simuler la chute libre sur différents corps célestes 🌎🌕🚀

🎯 Objectif de l’exercice

À la fin de cet exercice, tu seras capable :

  • D’utiliser les formules de chute libre pour calculer la vitesse et l’altitude d’un objet en fonction du temps.
  • De comprendre l’impact de la gravité différente selon les astres.
  • De créer une simulation visuelle simple avec Pygame.

📚 Théorie : formule de la chute libre

Lorsqu'un objet tombe en chute libre (sans frottements), sa vitesse et son altitude sont calculées ainsi :

  • Vitesse instantanée (v) : [ v = g \cdot t ]

  • Altitude instantanée (y) : [ y = h_0 - \frac{1}{2} \cdot g \cdot t^2 ]

Avec :

  • ( g ) = gravité (variable selon l’astre)
  • ( t ) = temps écoulé (en secondes)
  • ( h_0 ) = hauteur initiale de l'objet (en mètres)

chute

Corps céleste Gravité (m/s²)
Terre 🌎 9.81
Lune 🌕 1.62
Mars 🚀 3.72

💻 Ton défi : complète la fonction calcul_chute

Ci-dessous se trouve un squelette complet d'un programme Python avec Pygame.

Tu dois uniquement compléter la fonction calcul_chute.


🚧 Squelette de programme Python (avec Pygame)

Voici un code entièrement fonctionnel avec une place clairement indiquée pour ton calcul :

import pygame

# Paramètres initiaux
LARGEUR, HAUTEUR = 600, 600
FPS = 60

# Paramètres physiques
GRAVITE = 1.62  # Change cette valeur : 9.81 (Terre), 1.62 (Lune), 3.72 (Mars)
HAUTEUR_INITIALE = 500  # mètres

pygame.init()
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
pygame.display.set_caption("Simulation de la chute libre")
clock = pygame.time.Clock()
font = pygame.font.SysFont("Arial", 18)

def calcul_chute(gravite, hauteur_initiale, temps):
    """
    Complète cette fonction !
    Retourne l'altitude actuelle et la vitesse actuelle de l'objet.
    """
    altitude = 0  # À compléter !
    vitesse = 0   # À compléter !

    return altitude, vitesse

def main():
    running = True
    temps = 0
    objet_en_chute = True

    # Position graphique initiale de l'objet
    x_objet = LARGEUR // 2
    rayon_objet = 15

    while running:
        clock.tick(FPS)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        if objet_en_chute:
            altitude, vitesse = calcul_chute(GRAVITE, HAUTEUR_INITIALE, temps)

            # Si l'objet touche le sol, on arrête la chute
            if altitude <= 0:
                altitude = 0
                objet_en_chute = False
            else:
                temps += 1 / FPS

        # Conversion mètres vers pixels pour afficher à l'écran
        pixels_par_metre = HAUTEUR / (HAUTEUR_INITIALE + 50)
        y_objet = HAUTEUR - int(altitude * pixels_par_metre) - rayon_objet

        # Affichage graphique
        fenetre.fill((255, 255, 255))  # fond blanc

        # Sol
        pygame.draw.rect(fenetre, (100, 200, 100), (0, HAUTEUR - 10, LARGEUR, 10))

        # Objet
        pygame.draw.circle(fenetre, (255, 0, 0), (x_objet, y_objet), rayon_objet)

        # Affichage des infos en haut à droite
        infos = [
            f"Altitude : {altitude:.2f} m",
            f"Vitesse : {vitesse:.2f} m/s",
            f"Gravité : {GRAVITE:.2f} m/s²"
        ]

        for i, texte in enumerate(infos):
            surface_texte = font.render(texte, True, (0, 0, 0))
            largeur_texte, hauteur_texte = surface_texte.get_size()
            fenetre.blit(surface_texte, (LARGEUR - largeur_texte - 10, 10 + i * (hauteur_texte + 5)))

        pygame.display.flip()

    pygame.quit()

if __name__ == "__main__":
    main()

💡 Synthèse : ce qu’il faut retenir

  • En chute libre, l’objet accélère constamment sous l’effet de la gravité.
  • L’altitude diminue quadratiquement en fonction du temps.
  • La vitesse augmente linéairement avec le temps.

Ce programme visuel et interactif aide à comprendre clairement comment la gravité influence la chute libre sur différents corps célestes.

À toi de jouer ! 🌠

Pour aller plus loin