Matlab code to generate simple Minkowski Spacetime Diagram showing an event in S and S'. Both the S and S' axes are drawn, coinciding at the origin. The tick marks are calculated for the S' axes, and lines are drawn from the event on the S axes, showing intersection with the S' axes. Light wordlines from the origin and from the event to an observer at the origin of S can also optionally be drawn.
The function can be called directly, or via a simple GUI. The GUI only allows one event to be added.
[eventXP, eventTP, gamma, ds] = make_spacetime(ax, v, nEvents, eventX, eventT, [name, pair, ...])
ax : axes to draw diagram on.
v : velocity of moving observer (S') as a fraction of c.
nEvents : number of events to draw.
eventX : vector of x positions (in S) for each event.
eventT : vector of time (ct) (in S) for each events.
Optional Name-Pair Values
drawLightLine : 1 to draw worldline of light from origin (default is no).
drawLightPaths : 1 to draw light worldline from event to observer S (defualt is no).
scaleLimit : Scales run from -this to +this (default is 10).
eventXP : vector of x' positions (in S') for each event.
eventTP : vector of time (ct') positions (in S') for each event.
gamma : gamma factor.
ds : space-time distance invariant (squared).
figure(1); ax = gca(); v = 0.5; % Velocity of frame S' in units of c nEvents = 2; % No of events eventX = [3, 7]; % Event positions eventT = [3, 2]; % Event times in units of c [eventXP, eventTP, gamma, ds] = make_spacetime(ax, v, nEvents, eventX, eventT, 'drawLightLine', 1, 'drawLightPath', 1, 'scaleLimit', 15); axis equal