Faire tourner la tortue vers la gauche ou vers la droite est approprié lorsqu'on sait spécifiquement de quel angle on veut la faire tourner. Ce n'est pas vraiment ton cas ici, cet angle dépendant de l'angle d'incidence.
Il va t'être indispensable d'enregistrer dans une variable le cap de la tortue avant rebond. Ensuite, à l'impact, il va falloir déterminer la direction de la tangente ou de la normale (une belle application de trigonométrie : tu connais l'abscisse et l'ordonnée du point d'impact, ainsi que le centre et le rayon du cercle, donc plus qu'il n'en faut pour calculer l'angle du point d'impact dans ce cercle !), puis calculer le nouveau cap. Enfin, tu pourras utiliser la fonction setheading() pour fixer le nouveau cap de la tortue.
Au fait, dans ton code, qu'est-ce que c'est que ce y qui apparaît dans distance(0,y) > rayon ? Ton cercle n'est pas centré à l'origine ?
# Piste
Posté par 🚲 Tanguy Ortolo (site web personnel) . En réponse au message Rebonds sur une surface circulaire. Évalué à 7.
Faire tourner la tortue vers la gauche ou vers la droite est approprié lorsqu'on sait spécifiquement de quel angle on veut la faire tourner. Ce n'est pas vraiment ton cas ici, cet angle dépendant de l'angle d'incidence.
Il va t'être indispensable d'enregistrer dans une variable le cap de la tortue avant rebond. Ensuite, à l'impact, il va falloir déterminer la direction de la tangente ou de la normale (une belle application de trigonométrie : tu connais l'abscisse et l'ordonnée du point d'impact, ainsi que le centre et le rayon du cercle, donc plus qu'il n'en faut pour calculer l'angle du point d'impact dans ce cercle !), puis calculer le nouveau cap. Enfin, tu pourras utiliser la fonction
setheading()pour fixer le nouveau cap de la tortue.Au fait, dans ton code, qu'est-ce que c'est que ce
yqui apparaît dansdistance(0,y) > rayon? Ton cercle n'est pas centré à l'origine ?