Aller au contenu principal

Programmer avec Python

Boucles, fonctions, maths

Dix dominos en trois lignes, une came calculée point par point, une fonction qui pose une roue.

Explication

L'atelier exécute du vrai Python. Ce qui sert le plus dans une scène :

  • for i in range(n) pour répéter : des dominos, des marches, des billes ;
  • import math pour cos, sin, radians, pi, sqrt : des points sur un cercle, une came, une spirale ;
  • def pour une fonction qui construit un morceau de machine, appelée plusieurs fois ;
  • les variables en MAJUSCULES en tête de script pour les réglages (VITESSE = 60) : on change un nombre, on ré-exécute.

Manipulation

sol(x=0, y=250, largeur=2000)
for i in range(10):
    rectangle(x=-200 + i * 40, y=200, largeur=10, hauteur=60, materiau="bois", couleur="#e2e8f0")
cercle(x=-400, y=-100, rayon=25, materiau="acier")
rectangle(x=-350, y=100, largeur=300, hauteur=20, angle=25, fixe=True)
Essayer ce code dans l’atelier Python

Observation

Dix dominos espacés de 40 mm ; la bille descend la rampe et les renverse en chaîne. Change range(10) en range(25) et -200 en -500.

Une fonction qui construit

def roue_motrice(x, y, vitesse):
    r = cercle(x=x, y=y, rayon=40, materiau="caoutchouc")
    pivot(x=x, y=y, corps=r, moteur=True, vitesse=vitesse, couple=5)
    return r

for k in range(4):
    roue_motrice(-300 + k * 200, 0, 60 if k % 2 == 0 else -60)
tapis = rectangle(x=0, y=-60, largeur=900, hauteur=12, materiau="bois")
Essayer ce code dans l’atelier Python

Une forme calculée

import math
points = []
for k in range(36):
    a = math.radians(k * 10)
    r = 100 + 40 * k / 36            # le rayon grandit : un escargot
    points.append((r * math.cos(a), r * math.sin(a)))
came = dessin(points=points, materiau="bois", couleur="#d97706")
pivot(x=0, y=0, corps=came, moteur=True, vitesse=20)
Essayer ce code dans l’atelier Python

C'est exactement ainsi qu'est faite la came de la catapulte. Les fonctions Python disponibles : Python disponible.