<script>
import { tweened } from 'svelte/motion'
// inches in mile
const inchesPerMile = 63360
// mph
let speed = 100
let timeout = null
// 6' 6"
const distance = 60 * 12 + 6
const ball = tweened(distance)
$: speedPerSecond = speed / 60 / 60
$: duration = (distance / inchesPerMile / speedPerSecond) * 1000
function pitch() {
if (timeout) clearTimeout(timeout)
reset()
// 0" is homeplate
ball.set(0, {duration})
// after pitch is complete, put ball back at mound
timeout = setTimeout(() => reset(), duration + 500)
}
function reset() {
ball.set(distance, {duration: 0})
}
</script>
<h1>Baseball speed</h1>
<form on:submit|preventDefault={pitch}>