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 mathpourcos,sin,radians,pi,sqrt: des points sur un cercle, une came, une spirale ;defpour 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 PythonObservation
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 PythonUne 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 PythonC'est exactement ainsi qu'est faite la came de la catapulte. Les fonctions Python disponibles : Python disponible.