Spaces:
Sleeping
Sleeping
import matplotlib | |
matplotlib.use('Agg') | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import gradio as gr | |
def plot(v, a): | |
g = 9.81 | |
theta = a / 180 * 3.14 | |
tmax = ((2 * v) * np.sin(theta)) / g | |
timemat = tmax * np.linspace(0, 1, 40)[:, None] | |
x = (v * timemat) * np.cos(theta) | |
y = ((v * timemat) * np.sin(theta)) - ((0.5 * g) * (timemat**2)) | |
fig = plt.figure() | |
plt.scatter(x=x, y=y, marker=".") | |
plt.xlim(0, 100) | |
plt.ylim(0, 60) | |
return fig | |
demo = gr.Blocks() | |
with demo: | |
gr.Markdown( | |
"Let's do some kinematics! Choose the speed and angle to see the trajectory." | |
) | |
with gr.Row(): | |
speed = gr.Slider(1, 30, 25, label="Speed") | |
angle = gr.Slider(0, 90, 45, label="Angle") | |
output = gr.Plot() | |
btn = gr.Button(value="Run") | |
btn.click(plot, [speed, angle], output) | |
if __name__ == "__main__": | |
demo.launch() | |