File size: 2,073 Bytes
8666e0f 5ee263c 8666e0f 46251b7 8666e0f 1ceb05f 8666e0f 0956288 5ee263c 8666e0f 46251b7 5ee263c 8666e0f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import gradio as gr
from backend.nonreflecting_ray_tracing import nonreflecting_plotter
from backend.reflecting_ray_tracing import reflecting_plotter
description1 = (
"A source of **light** placed at the **origin**. A spherical **non-Reflecting** surface placed in front it."
"**Change ANY Parameter to get it working.**"
)
iface1 = gr.Interface(
fn = nonreflecting_plotter,
inputs=[
gr.Number(label="Circle Center X (a)", value=20),
gr.Number(label="Circle Center Y (b)", value=20),
gr.Number(label="Radius (r)", value=15),
gr.Slider(minimum=3, maximum=1000, step=1, label="Number of Rays", value=50)
],
outputs="image",
live=True,
title="Non-Reflective Ray Tracing",
description=description1,
)
description2 = ("A source of **light** placed at the **origin**. A spherical **Reflecting surface** placed in front it. This interface simulates the rays interaction with the Reflecting surface."
"**Change ANY Parameter to get it working.**"
)
iface2 = gr.Interface(
fn = reflecting_plotter,
inputs=[
gr.Number(label="Circle Center X (a)", value=20),
gr.Number(label="Circle Center Y (b)", value=20),
gr.Number(label="Radius (r)", value=15),
gr.Slider(minimum=3, maximum=1000, step=1, label="Number of Rays", value=50)
],
outputs="image",
live=True,
title="Reflective Ray Tracing",
description=description2,
)
combinedInterface = gr.TabbedInterface([iface1, iface2],
['Non-Reflective Ray Tracing', 'Reflective Ray Tracing']
)
combinedInterface.launch(share=False) |