DebasishDhal99's picture
Add ratio of rays that are incident for both
cc6e945
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, info="X coordinate of Circle center"),
gr.Number(label="Circle Center Y (b)", value=20, info="Y coordinate of Circle center"),
gr.Number(label="Radius (r)", value=15, info="Radius of the circle"),
gr.Slider(minimum=3, maximum=1000, step=1, label="Number of Rays", value=50, info="Number of rays to be plotted in total"),
gr.Radio(label="Remove Clutter", choices=["Yes", "No"], value="No", info="Only keep rays that are INCIDENT by the surface."),
],
outputs=[
gr.Image(label="Ray Tracing Output"),
gr.Number(label="Fraction of Incident Rays", info="Out of 100 rays, how many are incident on the surface"),
],
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, info="X coordinate of Circle center"),
gr.Number(label="Circle Center Y (b)", value=20, info="Y coordinate of Circle center"),
gr.Number(label="Radius (r)", value=15, info="Radius of the circle"),
gr.Slider(minimum=3, maximum=1000, step=1, label="Number of Rays", value=50, info="Number of rays to be plotted in total"),
gr.Radio(label="Remove Clutter", choices=["Yes", "No"], value="No", info="Only keep rays that are REFLECTED to the surface."),
],
outputs=[
gr.Image(label="Ray Tracing Output"),
gr.Number(label="Fraction of Reflected Rays", info="Out of 100 rays, how many get reflected by the surface"),
],
live=True,
title="Reflective Ray Tracing",
description=description2,
)
combinedInterface = gr.TabbedInterface([iface1, iface2],
['Non-Reflective Ray Tracing', 'Reflective Ray Tracing']
)
combinedInterface.launch(share=False)