0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Intro V Python

Ce document est un guide pratique pour utiliser VPython afin de créer des objets en 3D et simuler des mouvements. Il explique comment construire des formes de base, animer une balle en mouvement rectiligne uniforme, et gérer les collisions avec des murs. Les utilisateurs apprennent à programmer des objets, à manipuler leur position et à créer des interactions physiques simples.

Transféré par

aboubacarg1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Intro V Python

Ce document est un guide pratique pour utiliser VPython afin de créer des objets en 3D et simuler des mouvements. Il explique comment construire des formes de base, animer une balle en mouvement rectiligne uniforme, et gérer les collisions avec des murs. Les utilisateurs apprennent à programmer des objets, à manipuler leur position et à créer des interactions physiques simples.

Transféré par

aboubacarg1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Physique Mécanique​ Formatif VPython​ H2026

Introduction VPython
Préliminaire
Allez à l’adresse [Link]

Cliquez sur sign in (en haut à droite); puis connectez-vous.

Une fois connecté(e), cliquez sur here, et dans l’onglet MyPrograms cliquez sur Create New
Program. Écrivez le nom de votre programme (par exemple Introduction ou Exemple ou etc…)

La première ligne du fichier, Web VPython 3.2, ne doit jamais être effacée.

Partie I : construire et placer des objets (30 min)

La documentation sur les objets que l’on peut créer se trouve à :


[Link]

Cliquez sur 3D Objects et cliquez sur les formes proposées pour connaître la
manière de les programmer. Pour le moment, suivez les étapes ci- dessous.

1.​ Commencez par créer une boite cubique jaune de 1 m de côté et centrée à l’origine du
référentiel de VPython. On appellera la boite, par exemple, cube1.
# Boite
cube1 = box(pos=vector(0,0,0), size=vector(1, 1, 1), color=[Link])

2.​ Cliquez sur Run this program


3.​ Vous devriez voir un cube jaune apparaître. Utilisez le clique droit pour bouger le cube
et la molette pour zoomer/dézoomer.
4.​ Continuez en créant une sphère rouge, appelée bille, de 0.3 m de diamètre, juste
au-dessus de la boite jaune mais à la position x = -1 et z = 0. Remplacez, ci-après, le
symbole « ? » par la bonne valeur numérique.
# Bille sur la boite jaune
bille = sphere( pos = vector(-1, ?, 0), radius = 0.3, color=[Link])

5.​ Poursuivez en créant un arbre constitué d’un cylindre (tronc) et d’une ellipsoïde (la
forme du feuillage). Dans un premier temps, placez un cylindre vertical. Le cylindre se
définit par rapport aux coordonnées du centre de sa base, la longueur et l’orientation de
son axe, et le rayon de son axe. Placez la base du cylindre à droite du cube, à x = 1 m, y =

Page 1 / 5
Physique Mécanique​ Formatif VPython​ H2026

0 et z = 0. L’axe (axis) du cylindre est orienté vers le haut (sur y), de 2,5 m de hauteur et
de 0,5 m de rayon (radius).

# Tronc d’arbre
tronc = cylinder(pos = vector(1, 0, 0), radius = ?, axis = vector(0, ?, 0), color =
vec(150/255, 75/255, 0))

6.​ Le feuillage sera représenté par une ellipsoïde, la position de l’ellipsoïde est repérée par
rapport aux coordonnées de son centre, puis il faut donner des dimensions x, y et z.
Changez les symboles « ? » par des valeurs numériques jusqu’à ce que le résultat vous
convienne.
# Feuillage de l’arbre
feuillage = ellipsoid (pos = vector(1, ?, 0), size = vector(?, ?, ?), color = [Link])

7.​ Modifier les dimensions du cube jaune et sa position afin de créer un sol. La surface
supérieure du sol correspond à la position y = 0, l’épaisseur du sol sera de 10 cm, la
dimension sur x sera de 5 m de long et sa profondeur de 1 m. Remplacez les symboles
« ? » par des valeurs numériques.
# Autre cube
cube1 = box(pos=vector(0, ?, 0), size=vector(5, ? ,1), color=[Link])

8.​ Poursuivez quelques minutes pour modifier la bille en un avion simple en utilisant les
différentes formes disponibles dans VPython. Ne perdez pas trop de temps car le
prochain exercice est plus long.

Partie II : Apprendre à bouger des objets en MRU (1h)


Objectif : le programme consiste à faire rebondir une balle sur des murs.

1.​ Créez une balle avec un rayon de 50 cm à l’origine du référentiel sauf en x = -5 m.

2.​ Créez un premier mur à la position x = 6 m, centré en y et z. Le mur a une épaisseur de


20 cm sur x et 12 m sur les deux autres dimensions. Choisissez une couleur pour vos
murs différentes de la couleur de votre balle

3.​ Définissez une variable pour la vitesse de la balle. Celle-ci a une vitesse initiale de 10 m/s
sur l’axe des x positifs. N’oubliez pas que cette variable est un vecteur.

#Vitesse balle
vitesse = vec(10,0,0)

Page 2 / 5
Physique Mécanique​ Formatif VPython​ H2026

4.​ On va calculer la position de la balle toutes les 0,005 secondes. Définir une variable pour
décrire cet intervalle de temps (par exemple dt). Le chronomètre partira à t = 0, on
définit aussi cette variable de temps.

#Temps et intervalle de temps


temps = 0
dt = 1/60 # un soixantième de secondes !

5.​ Si vous exécutez le programme, rien ne se passe!

6.​ C’est normal. On n’a pas indiqué à l’ordinateur comment mettre à jour la position de la
balle à l’aide de la vitesse. On supposera la relation suivante :

𝑥𝑓 = 𝑥𝑖 + 𝑣 ∆𝑡

7.​ En d’autres termes, la nouvelle position de la balle ou la position suivante, (𝑥𝑓) est
égale à l’ancienne position de la balle (𝑥𝑖) additionnée au déplacement (∆𝑥 = 𝑣 ∆𝑡),
déplacement réalisé en un court intervalle de temps ∆𝑡 à vitesse 𝑣. En langage
VPython, ça donne :

[Link] = [Link] + vitesse * dt

8.​ En programmation, le signe « = » signifie quelque chose de différent que l’égalité en


algèbre. Dans VPython, le signe « = » est utilisé pour assigner une valeur à une variable.
En d’autres termes, la ligne précédente indique simplement que l’attribut « [Link] »
se voit assigner une nouvelle valeur soit sa valeur actuelle augmentée par le
déplacement.

9.​ Exécutez votre programme.

10.​Encore une fois, presque rien ne se passe. Le programme a calculé une et une seule
position suivante. Il faut répéter plusieurs fois le calcul. Pour ce faire, il faut utiliser une
boucle « while ». Cette fonction donne l’instruction à l’ordinateur d’exécuter une série
de commandes jusqu’à ce qu’on lui dise d’arrêter.

11.​Insérez la ligne suivante juste avant la mise à jour de la position de la balle.

#Boucle principale
while temps < 20:
​ [Link] = [Link] + vitesse * dt

12.​N’oubliez pas les deux points! Il faut noter qu’en appuyant sur « Entrée », le curseur
apparaît en retrait. Les lignes suivant la commande « while » sont dans la boucle; elles
sont répétées tant et aussi longtemps que la variable « t » est inférieure à 3 secondes.

Page 3 / 5
Physique Mécanique​ Formatif VPython​ H2026

13.​Mettez à jour la variable « temps » en ajoutant « dt » à chaque exécution de la boucle :

temps = t + dt

14.​Selon la vitesse de votre ordinateur, la balle s’est déplacée tellement vite que vous
n’avez rien vu! Par ailleurs, VPython, par défaut, tente de garder tous les objets
visibles. Ainsi, lorsque la balle se déplace par rapport à l’origine, VPython bouge la
« caméra » vers l’arrière. Cette option s’appelle « l’échelle automatique ».

15.​Pour ralentir l’animation, insérer cette ligne dans la boucle (après l’instruction
« while » ; donc en retrait). Cette information indique d’afficher (environ) 60 images
par seconde.
rate(60)

16.​Exécutez le programme. Vous devriez voir la balle se déplacer vers la droite. Remarquez
qu’elle passe au travers du mur! En effet, VPython ne connaît rien à la physique! Vous
devez lui dire quoi faire!

17.​Lorsque la balle touche le mur, VPython doit inverser le signe du vecteur vitesse. Ainsi la
balle repartira dans l’autre sens. Une condition « si » s’écrit en indiquant « if » suivi de la
condition et terminé par « : ». La ligne suivante, en retrait, indique la commande à
exécuter lorsque la condition est vérifiée. Ainsi on pourrait écrire :

if [Link].x > [Link].x :

vitesse.x = -vitesse.x

18.​Exécutez le programme. Votre balle rebondit mais… elle s’enfonce dans le mur parce
qu’il faut tenir compte des dimensions de la balle et de l’épaisseur du mur.

19.​À vous de modifier la condition « if » pour corriger cette erreur.

20.​Ajoutez un mur à la position x = -6 m, de même grandeur que le premier. On va faire


rebondir la balle entre les deux murs. Changer la condition dans le « while » afin que le
temps soit plus long ou bien indiquez une condition qui ne dépend pas du temps et qui
fonctionne toujours (par exemple « while True : »).

21.​ Ajoutez une condition « if » pour que la balle rebondisse sur le mur de gauche.

22.​Une fois que cela fonctionne, que la balle rebondit sur les deux murs, faites-le vérifier en
levant la main pour que je confirme la réussite de l’exercice !

Construire la boîte en 3 dimensions


23.​Construisez trois autres murs pour former une boîte. Changez la vitesse initiale de la
balle en x, y et z. Par exemple 𝑣𝑥 = 10 m/s, 𝑣𝑦= 5 m/s et 𝑣𝑧= 15 m/s.

Page 4 / 5
Physique Mécanique​ Formatif VPython​ H2026

24.​Ajoutez les conditions nécessaires pour que la balle rebondisse sur chacun des murs

Page 5 / 5

Vous aimerez peut-être aussi