# Simulates the dropping of two balls from various heights.
def main():
panel = DrawingPanel(600, 600) # 600x600 boyutunda bir çizim paneli oluşturur.
ball1x = 100 # Birinci topun x koordinatı
ball1y = 0 # Birinci topun başlangıç y koordinatı (yerden yükseklik)
v01 = 25 # Birinci topun başlangıç hızı (m/s cinsinden, aşağı yönlü)
ball2x = 200 # İkinci topun x koordinatı
ball2y = 100 # İkinci topun başlangıç y koordinatı (yerden yükseklik)
v02 = 15 # İkinci topun başlangıç hızı (m/s cinsinden, aşağı yönlü)
# draw the balls at each time increment
for time in range(60): # 60 kez döngü çalıştırılır, her biri 1 birim zaman adımı temsil eder
disp1 = displacement(v01, time / 10, 9.81) # Birinci topun yer değiştirmesi hesaplanır
panel.fill_oval(ball1x, ball1y + disp1, ball1x + 10, ball1y + 10 + disp1) # Birinci top çizilir
disp2 = displacement(v02, time / 10, 9.81) # İkinci topun yer değiştirmesi hesaplanır
panel.fill_oval(ball2x, ball2y + disp2, ball2x + 10, ball2y + 10 + disp2) # İkinci top çizilir
panel.sleep(50) # Her bir çizimden sonra 50 ms duraklama yapılır (animasyon etkisi için)
panel.fill_rect(0, 0, 600, 600, "white") # Panel temizlenerek bir sonraki çizime hazırlanır
IyBTaW11bGF0ZXMgdGhlIGRyb3BwaW5nIG9mIHR3byBiYWxscyBmcm9tIHZhcmlvdXMgaGVpZ2h0cy4KZGVmIG1haW4oKToKICAgIHBhbmVsID0gRHJhd2luZ1BhbmVsKDYwMCwgNjAwKSAgIyA2MDB4NjAwIGJveXV0dW5kYSBiaXIgw6dpemltIHBhbmVsaSBvbHXFn3R1cnVyLgogICAgYmFsbDF4ID0gMTAwICAjIEJpcmluY2kgdG9wdW4geCBrb29yZGluYXTEsQogICAgYmFsbDF5ID0gMCAgICAjIEJpcmluY2kgdG9wdW4gYmHFn2xhbmfEscOnIHkga29vcmRpbmF0xLEgKHllcmRlbiB5w7xrc2VrbGlrKQogICAgdjAxID0gMjUgICAgICAjIEJpcmluY2kgdG9wdW4gYmHFn2xhbmfEscOnIGjEsXrEsSAobS9zIGNpbnNpbmRlbiwgYcWfYcSfxLEgecO2bmzDvCkKICAgIGJhbGwyeCA9IDIwMCAgIyDEsGtpbmNpIHRvcHVuIHgga29vcmRpbmF0xLEKICAgIGJhbGwyeSA9IDEwMCAgIyDEsGtpbmNpIHRvcHVuIGJhxZ9sYW5nxLHDpyB5IGtvb3JkaW5hdMSxICh5ZXJkZW4gecO8a3Nla2xpaykKICAgIHYwMiA9IDE1ICAgICAgIyDEsGtpbmNpIHRvcHVuIGJhxZ9sYW5nxLHDpyBoxLF6xLEgKG0vcyBjaW5zaW5kZW4sIGHFn2HEn8SxIHnDtm5sw7wpCgogICAgIyBkcmF3IHRoZSBiYWxscyBhdCBlYWNoIHRpbWUgaW5jcmVtZW50CiAgICBmb3IgdGltZSBpbiByYW5nZSg2MCk6ICAjIDYwIGtleiBkw7ZuZ8O8IMOnYWzEscWfdMSxcsSxbMSxciwgaGVyIGJpcmkgMSBiaXJpbSB6YW1hbiBhZMSxbcSxIHRlbXNpbCBlZGVyCiAgICAgICAgZGlzcDEgPSBkaXNwbGFjZW1lbnQodjAxLCB0aW1lIC8gMTAsIDkuODEpICAjIEJpcmluY2kgdG9wdW4geWVyIGRlxJ9pxZ90aXJtZXNpIGhlc2FwbGFuxLFyCiAgICAgICAgcGFuZWwuZmlsbF9vdmFsKGJhbGwxeCwgYmFsbDF5ICsgZGlzcDEsIGJhbGwxeCArIDEwLCBiYWxsMXkgKyAxMCArIGRpc3AxKSAgIyBCaXJpbmNpIHRvcCDDp2l6aWxpcgoKICAgICAgICBkaXNwMiA9IGRpc3BsYWNlbWVudCh2MDIsIHRpbWUgLyAxMCwgOS44MSkgICMgxLBraW5jaSB0b3B1biB5ZXIgZGXEn2nFn3Rpcm1lc2kgaGVzYXBsYW7EsXIKICAgICAgICBwYW5lbC5maWxsX292YWwoYmFsbDJ4LCBiYWxsMnkgKyBkaXNwMiwgYmFsbDJ4ICsgMTAsIGJhbGwyeSArIDEwICsgZGlzcDIpICAjIMSwa2luY2kgdG9wIMOnaXppbGlyCgogICAgICAgIHBhbmVsLnNsZWVwKDUwKSAgIyBIZXIgYmlyIMOnaXppbWRlbiBzb25yYSA1MCBtcyBkdXJha2xhbWEgeWFwxLFsxLFyIChhbmltYXN5b24gZXRraXNpIGnDp2luKQogICAgICAgIHBhbmVsLmZpbGxfcmVjdCgwLCAwLCA2MDAsIDYwMCwgIndoaXRlIikgICMgUGFuZWwgdGVtaXpsZW5lcmVrIGJpciBzb25yYWtpIMOnaXppbWUgaGF6xLFybGFuxLFyCg==