fork download
  1. import tkinter
  2. import math
  3.  
  4. def move():
  5. global x, y, vy, t
  6.  
  7. # ボールの新しい位置を計算
  8. if 0 <= x and x <= WIDTH and -HEIGHT / 2 <= y and y <= HEIGHT / 2:
  9. x = x0 + v0 * math.cos(degrees * math.pi/180) * t
  10. y = y0 + v0 * math.sin(degrees * math.pi/180) * t - (g / 2) * t ** 2
  11. t = t + dt
  12. else:
  13. x = x0
  14. y = y0
  15. t = t0
  16.  
  17. update_label()
  18.  
  19. # ボールの位置を更新
  20. canvas.coords('ball', x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN)
  21. canvas.coords('ball1', x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN)
  22.  
  23. window.after(10, move) # 10ミリ秒ごとにmove関数を呼び出す
  24.  
  25. def update_label():
  26. position_label.config(text=f'Position: ({x}, {y})')
  27.  
  28. WIDTH, HEIGHT = 800, 600
  29. MARGIN = 10
  30.  
  31. t0 = 0.0
  32. dt = 0.1
  33. g = 9.8
  34.  
  35. v0 = float(input('初速度(m/s)を入力してください: '))
  36. degrees = float(input('角度(度)を入力してください: '))
  37.  
  38. theta = degrees * math.pi / 180
  39. vx0 = v0 * math.cos(theta)
  40. vy0 = v0 * math.sin(theta)
  41. x0 = 10
  42. y0 = 0
  43. x1 = 250
  44. y1 = 0
  45. x = x0 * WIDTH
  46. y = y0 * HEIGHT
  47. vy = vy0 * HEIGHT
  48. t = t0
  49.  
  50. geo_str = str(WIDTH + MARGIN * 2) + 'x' + str(HEIGHT + MARGIN * 2)
  51. window = tkinter.Tk()
  52. window.geometry(geo_str)
  53. window.title('moving')
  54.  
  55. canvas = tkinter.Canvas(window, width=WIDTH, height=HEIGHT, bg='white')
  56. canvas.place(x=MARGIN, y=MARGIN)
  57. canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
  58. canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
  59.  
  60. position_label = tkinter.Label(window, text='Position: (0, 0)')
  61. position_label.place(x=WIDTH - 300, y=10)
  62.  
  63. move()
  64. window.mainloop()
  65.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: '.' expected
import tkinter
              ^
Main.java:2: error: '.' expected
import math
           ^
Main.java:4: error: ';' expected
def move():
   ^
Main.java:7: error: illegal character: '#'
    # ????????????
    ^
Main.java:19: error: illegal character: '#'
    # ?????????
    ^
Main.java:20: error: unclosed character literal
    canvas.coords('ball', x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN)
                  ^
Main.java:20: error: unclosed character literal
    canvas.coords('ball', x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN)
                       ^
Main.java:21: error: unclosed character literal
    canvas.coords('ball1', x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN)
                  ^
Main.java:21: error: unclosed character literal
    canvas.coords('ball1', x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN)
                        ^
Main.java:23: error: illegal character: '#'
    window.after(10, move)  # 10??????move???????
                            ^
Main.java:26: error: unclosed character literal
    position_label.config(text=f'Position: ({x}, {y})')
                                ^
Main.java:26: error: unclosed character literal
    position_label.config(text=f'Position: ({x}, {y})')
                                                     ^
Main.java:35: error: unclosed character literal
v0 = float(input('???(m/s)?????????: '))
                 ^
Main.java:35: error: unclosed character literal
v0 = float(input('???(m/s)?????????: '))
                                     ^
Main.java:36: error: unclosed character literal
degrees = float(input('??(?)?????????: '))
                      ^
Main.java:36: error: unclosed character literal
degrees = float(input('??(?)?????????: '))
                                       ^
Main.java:53: error: unclosed character literal
window.title('moving')
             ^
Main.java:53: error: unclosed character literal
window.title('moving')
                    ^
Main.java:55: error: unclosed character literal
canvas = tkinter.Canvas(window, width=WIDTH, height=HEIGHT, bg='white')
                                                               ^
Main.java:55: error: unclosed character literal
canvas = tkinter.Canvas(window, width=WIDTH, height=HEIGHT, bg='white')
                                                                     ^
Main.java:57: error: unclosed character literal
canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
                                                                                                      ^
Main.java:57: error: unclosed character literal
canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
                                                                                                          ^
Main.java:57: error: empty character literal
canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
                                                                                                                     ^
Main.java:57: error: unclosed character literal
canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
                                                                                                                              ^
Main.java:57: error: unclosed character literal
canvas.create_oval(x - MARGIN, (HEIGHT / 2 - y) - MARGIN, x + MARGIN, (HEIGHT / 2 - y) + MARGIN, fill='red', outline='', tags='ball')
                                                                                                                                   ^
Main.java:58: error: unclosed character literal
canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
                                                                                                          ^
Main.java:58: error: unclosed character literal
canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
                                                                                                               ^
Main.java:58: error: empty character literal
canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
                                                                                                                          ^
Main.java:58: error: unclosed character literal
canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
                                                                                                                                   ^
Main.java:58: error: unclosed character literal
canvas.create_oval(x1 - MARGIN, (HEIGHT / 2 - y1) - MARGIN, x1 + MARGIN, (HEIGHT / 2 - y1) + MARGIN, fill='gray', outline='', tags='ball1')
                                                                                                                                         ^
Main.java:60: error: unclosed character literal
position_label = tkinter.Label(window, text='Position: (0, 0)')
                                            ^
Main.java:60: error: unclosed character literal
position_label = tkinter.Label(window, text='Position: (0, 0)')
                                                             ^
32 errors
stdout
Standard output is empty