Прыгающий мяч по кругу (Python Turtle) - PullRequest
0 голосов
/ 29 мая 2018

В настоящее время я работаю над программой кругового бильярда с использованием Turtle.Моя проблема в том, что я не могу понять, какой угол или положение мне нужно дать Python, как только мяч достигнет сторон круга, чтобы заставить его отскочить.Вот часть моей программы, которую нужно исправить:

while nbrebonds>=0:
        forward(1)
        if (distance(0,y)>rayon): #rayon means radius 
            print(distance(0,y))
            left(2*angleinitial)  #I put this angle as a test but it doesn't work
            forward(1)
            nbrebonds+=(-1)

1 Ответ

0 голосов
/ 30 мая 2018

Из того, что я смог понять по этому вопросу, вы сможете рассчитать, что вам нужно, используя heading() и towards() методы черепахи:

from random import *
from turtle import *

radius = 100
nbrebonds = 10

# draw circle around (0, 0)
penup()
sety(-radius)
down()
circle(radius)

# move turtle to somewhat random position & heading inside circle
penup()
home()
setx(randrange(radius//4, radius//2))
sety(randrange(radius//4, radius//2))
setheading(randrange(0, 360))
pendown()

while nbrebonds >= 0:
    forward(1)

    if distance(0, 0) > radius:

        incoming = heading()
        normal = towards(0, 0)
        outgoing = 2 * normal - 180 - incoming

        setheading(outgoing)

        forward(1)

        nbrebonds -= 1

mainloop()

enter image description here

...