module special.corde#

Inheritance diagram of ensae_teaching_cs.special.corde

Short summary#

module ensae_teaching_cs.special.corde

Simulates a string which is falling but tied by its extremities. See Simulation d’une corde qui chute.

source on GitHub

Classes#

class

truncated documentation

Corde

Définition d’une corde, une liste de masses reliées par des élastiques et attachées au deux extrémités.

ObjetMasseReliees

Définit un objet commun à une corde ou un pendule physiquement représenté comme un ensemble de masses reliées des …

Pendule

Définition d’un pendule, une liste de masses reliées par des élastiques et attachées à une extrémités. Contribution …

Point

définition d’un point : deux coordonnées et une masse

Functions#

function

truncated documentation

display_masses

affichage de la corde à l’aide du module pyagame

pygame_simulation

Simulation graphique. Simule la chute d’une corde suspendue à ces deux extrémités.

Methods#

method

truncated documentation

__init__

__init__

__init__

__init__

définit un point de la corde, de coordonnées (x,y) et de masse m

__str__

afficher le point

deplace_point

déplace un point, le vecteur de déplacement est dp * dt où dep est aussi un point

difference

retourne le vecteur qui relie deux points, retourne un point

force_point

calcule les forces qui s’exerce en un point, retourne un point x,y

force_point

Calcule les forces qui s’exerce en un point, retourne un point x, y.

force_point

calcule les forces qui s’exerce en un point, retourne un point x,y

iteration

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, …

iteration

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, …

iteration

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, …

norme

retourne la norme du vecteur (x,y)

Documentation#

Simulates a string which is falling but tied by its extremities. See Simulation d’une corde qui chute.

source on GitHub

class ensae_teaching_cs.special.corde.Corde(nb, p1, p2, m, k, g, f, lo)#

Bases : ObjetMasseReliees

Définition d’une corde, une liste de masses reliées par des élastiques et attachées au deux extrémités.

source on GitHub

Paramètres:
  • nb – nombre de points

  • p1 – coordoonnées du premier point (fixe)

  • p2 – coordoonnées du dernier point (fixe)

  • m – masse de la corde, répartie entre tous les points

  • k – raideur de l’élastique

  • g – intensité de l’apesanteur, valeur positive

  • f – vitesse de freinage

  • lo – longueur totale de la corde

source on GitHub

force_point(i)#

calcule les forces qui s’exerce en un point, retourne un point x,y

source on GitHub

iteration(dt)#

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, retourne la somme des vitesses et des accélérations au carré.

source on GitHub

class ensae_teaching_cs.special.corde.ObjetMasseReliees(nb, p1, p2, m, k, g, f, lo)#

Bases : object

Définit un objet commun à une corde ou un pendule physiquement représenté comme un ensemble de masses reliées des élastiques.

source on GitHub

Paramètres:
  • nb – nombre de points

  • p1 – coordoonnées du premier point (fixe)

  • p2 – coordoonnées du dernier point (fixe)

  • m – masse de la corde, répartie entre tous les points

  • k – raideur de l’élastique

  • g – intensité de l’apesanteur, valeur positive

  • f – vitesse de freinage

  • lo – longueur totale de la corde

source on GitHub

__init__(nb, p1, p2, m, k, g, f, lo)#
Paramètres:
  • nb – nombre de points

  • p1 – coordoonnées du premier point (fixe)

  • p2 – coordoonnées du dernier point (fixe)

  • m – masse de la corde, répartie entre tous les points

  • k – raideur de l’élastique

  • g – intensité de l’apesanteur, valeur positive

  • f – vitesse de freinage

  • lo – longueur totale de la corde

source on GitHub

force_point(i)#

Calcule les forces qui s’exerce en un point, retourne un point x, y.

source on GitHub

iteration(dt)#

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, retourne la somme des vitesses et des accélérations au carré.

source on GitHub

class ensae_teaching_cs.special.corde.Pendule(nb, p1, p2, m, k, g, f, lo)#

Bases : ObjetMasseReliees

Définition d’un pendule, une liste de masses reliées par des élastiques et attachées à une extrémités. Contribution de Pascal Grandeau.

source on GitHub

Paramètres:
  • nb – nombre de points

  • p1 – coordoonnées du premier point (fixe)

  • p2 – coordoonnées du dernier point (fixe)

  • m – masse de la corde, répartie entre tous les points

  • k – raideur de l’élastique

  • g – intensité de l’apesanteur, valeur positive

  • f – vitesse de freinage

  • lo – longueur totale de la corde

source on GitHub

force_point(i)#

calcule les forces qui s’exerce en un point, retourne un point x,y

source on GitHub

iteration(dt)#

Calcule les déplacements de chaque point et les met à jour, on ne déplace pas les points situés aux extrémités, retourne la somme des vitesses et des accélérations au carré

source on GitHub

class ensae_teaching_cs.special.corde.Point(x, y, m)#

Bases : object

définition d’un point : deux coordonnées et une masse

source on GitHub

définit un point de la corde, de coordonnées (x,y) et de masse m

source on GitHub

__init__(x, y, m)#

définit un point de la corde, de coordonnées (x,y) et de masse m

source on GitHub

__slots__ = ('x', 'y', 'm')#
__str__()#

afficher le point

source on GitHub

deplace_point(dep, dt)#

déplace un point, le vecteur de déplacement est dp * dt où dep est aussi un point

source on GitHub

difference(p)#

retourne le vecteur qui relie deux points, retourne un point

source on GitHub

norme()#

retourne la norme du vecteur (x,y)

source on GitHub

ensae_teaching_cs.special.corde.display_masses(corde, screen, pygame)#

affichage de la corde à l’aide du module pyagame

source on GitHub

ensae_teaching_cs.special.corde.pygame_simulation(pygame, first_click=False, folder=None, iter=1000, size=(800, 500), nb=10, m=40, k=0.1, g=0.1, f=0.02, dt=0.1, step=10, flags=0, model='corde', fLOG=<function fLOG>)#

Simulation graphique. Simule la chute d’une corde suspendue à ces deux extrémités.

Paramètres:
  • pygame – module pygame (avoids importing in this file)

  • first_click – starts the simulation after a first click

  • folder – to save the simulation, an image per simulation

  • iter – number of iterations to run

  • fLOG – logging function

  • nb – nombre de points

  • m – masse de la corde, répartie entre tous les points

  • k – raideur de l’élastique

  • g – intensité de l’apesanteur, valeur positive

  • f – vitesse de freinage

  • dt – petit temps

  • step – marche

  • flags – see pygame.display.set_mode

  • model'corde' ou 'pendule'

  • fLOG – logging function

La simulation ressemble à ceci dans le cas d’une corde :

Ou cela dans le cas d’un pendule :

Pour lancer la simulation:

from ensae_teaching_cs.special.corde import pygame_simulation
import pygame
pygame_simulation(pygame, model='corde')

source on GitHub