!pip install plotly==4.11.0
!pip install plotly==4.11.0
# Used in "A Bridge From Maxwell to Einstein" by Refath Bari
import plotly.graph_objects as go
E_xcoord = float(input ("X-Coordinate of Event: "))
E_ycoord = float(input ("Y-Coordinate of Event: "))
Rob_Vel = float(input ("Rob's Velocity: "))
fig = go.Figure()
# Create scatter trace of text labels
fig.add_trace(go.Scatter(
x=[-8.5,-8.5,.6,8,8,.3,-.3,E_xcoord+.3,.2,.2,E_xcoord+.2,E_xcoord],
y=[E_ycoord,0,1,.7,-.7,8,8,E_ycoord+1,E_ycoord,(E_ycoord-(Rob_Vel*E_xcoord)),E_xcoord*Rob_Vel-.4,0.7],
text=["Rob", "Greg",r"$\tau = t=0$",r"$\tau$",r"$t$",r"$\zeta$",r"$z$",r"$E$",r"$\zeta$",r"$z$",r"$t$",r"$\tau$"],
mode="text",
))
# Set axes ranges
fig.update_xaxes(range=[-10, 10])
fig.update_yaxes(range=[-10, 10])
#Event E
fig.add_trace(
go.Scatter(
mode='markers',
x=[E_xcoord],
y=[E_ycoord],
marker=dict(
color='LightSkyBlue',
size=15
),
showlegend=False
)
)
# space projection for Greg
fig.add_shape(
type="line",
x0=0,
y0=E_ycoord,
x1=E_xcoord,
y1=E_ycoord,
line=dict(
color="MediumPurple",
width=4,
dash="dot",
)
)
# time projection for Greg
fig.add_shape(
type="line",
x0=E_xcoord,
y0=E_ycoord,
x1=E_xcoord,
y1=0,
line=dict(
color="MediumPurple",
width=4,
dash="dot",
)
)
#space projection for Rob
fig.add_shape(
type="line",
x0=E_xcoord,
y0=E_ycoord,
x1=0,
y1=(E_ycoord-(Rob_Vel*E_xcoord)),
line=dict(
color="yellowgreen",
width=4,
dash="dot",
)
)
#time projection for Rob
fig.add_shape(
type="line",
x0=E_xcoord,
y0=E_ycoord,
x1=E_xcoord,
y1=E_xcoord*Rob_Vel,
line=dict(
color="yellowgreen",
width=4,
dash="dot",
)
)
# Rob's path
fig.add_shape(
type="line",
x0=-8,
y0=Rob_Vel*-8,
x1=8,
y1=Rob_Vel*8,
line=dict(
color="yellowgreen",
width=4,
dash="solid",
)
)
# Greg's path
fig.add_shape(
type="line",
x0=-8,
y0=0,
x1=8,
y1=0,
line=dict(
color="MediumPurple",
width=4,
dash="solid",
)
)
fig.show()