파이썬 turtle 포물선 운동 궤적 튕기게 하는 방법을 알고 싶습니다

조회수 1492회
import turtle as t                                                                                                                                          
import math

tm=0.3                                                                                                                                                               
ux=0                                                                                                                                                                   
uy=0                                                                                                                                                                   
dx=0                                                                                                                                                                   
dy=0                                                                                                                                                                 
g=9.8                                                                                                                                                              
velo=0                                                                                                                                                             
ang=0

def draw_pos(x,y):                                                                                                                
    velo=t.numinput("입력","속도: ",50,10,100)                                          
    ang=math.radians(t.numinput("입력","각도: ",45,0,360))

    t.clearstamps()
    t.hideturtle()
    t.setpos(x,y)
    t.showturtle()
    t.stamp()

    hl=-(t.window_height()/2)

    ux=velo*math.cos(ang)
    uy=velo*math.cos(ang)

    while True:
        uy=uy+(-1*g)*tm
        dy=t.ycor()+(uy*tm)-(g*tm**2)/2
        dx=t.xcor()+(ux*tm)
        if dy>hl:
            t.goto(dx,dy)

        else:
            break
t.setup(600,600)
t.shape("circle")
t.shapesize(0.3,0.3,0)
t.penup()
s=t.Screen()
s.onscreenclick(draw_pos)
s.listen()

여기서 공이 아래에 닿을 때 수직선에 대해 입사각과 반사각이 동일하다고 가정할 때 바닥에 닿은 아래 면으로부터 추가로 궤적을 그리는데 궤적 의 y값이 하단보다 커지던지 x값이 우측면 값보다 커지면 멈추게 하려면 어떻게 해야 하나요?

이미지

  • 코드 이미지로 올리지 마세요. nowp 2021.5.12 08:26
  • 수정했습니다. 죄송합니다 처음이라... 알 수 없는 사용자 2021.5.12 10:17

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)