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)