Image:Animated Lorentz Transformation.gif
From Wikipedia, the free encyclopedia

No higher resolution available.
Animated_Lorentz_Transformation.gif (300 × 300 pixels, file size: 2.41 MB, MIME type: image/gif)
Contents |
[edit] Summary
Author: Jonathan Doolin (Myself)
This GIF animation was created with Mathematica 5.1
The Lorentz Transformation is capable of intelligible expression in only one or a limited number of ways, but if this particular animation is copied, I'd just as soon be credited, so tag with CC-by-sa 2.5.
This image was motivated by problem set 1 in "A first course in general relativity" by Bernard Schutz, and by Andrew Hamilton's "Spacetime Wheel" at http://casa.colorado.edu/~ajsh/sr/wheel.html
The line of dots that cross the horizontal axis represent events that appear simultaneous in one of the reference frames. The lines parallel to these (green if you look closely) are lines of constant time, (lines of simultaneity) in that original frame.
The line of dots that cross the vertical axis are events which occur in the same place at different times in the same reference frame. The lines parallel to these (a little bluish, if you look closely) are lines of constant position, representing the positions of stationary objects in the original frame. These lines are also known as worldlines.
The animation shows when and where those events would occur from the reference of other frames.
The hyperbolic arcs merely show the arcs of where different observers at the origin would observe the events denoted by the large dots.
The diagonals represent the speed of light which never changes.
[edit] Mathematica 5.1 Code
To my great surprise this works! Just copy and paste this code directly into Mathematica 5.1. There may be some extra stuff in here, too, and I don't think I have the line in here that turns it into a gif image.
\!\(\(SetOptions[ParametricPlot, AspectRatio -> 1\/GoldenRatio, Axes -> Automatic, AxesLabel -> None, AxesOrigin -> Automatic, AxesStyle -> Automatic, Background -> Automatic, ColorOutput -> Automatic, Compiled -> True, DefaultColor -> Automatic, DefaultFont \ :> $DefaultFont, DisplayFunction :> $DisplayFunction, Epilog -> {}, \ FormatType :> $FormatType, Frame -> False, FrameLabel -> None, FrameStyle -> Automatic, FrameTicks -> Automatic, GridLines -> None, ImageSize -> Automatic, MaxBend -> 10.`, PlotDivision -> 30.`, PlotLabel -> None, PlotPoints -> 25, \ PlotRange -> Automatic, PlotRegion -> Automatic, PlotStyle -> Automatic, Prolog -> {}, RotateLabel -> True, TextStyle :> $TextStyle, Ticks -> Automatic];\)\ \[IndentingNewLine] \(Clear["\<Global`*\>"];\)\[IndentingNewLine] \(setScale[x0_, x1_, y0_, y1_, h_] := SetOptions[ParametricPlot, PlotRange -> {{x0, x1}, {y0, y1}}, AspectRatio -> \(y1 - y0\)\/\(x1 - x0\), ImageSize -> {h/\(\(y1 - \ y0\)\/\(x1 - x0\)\), h}];\)\[IndentingNewLine] \(setColor[r_, g_, b_, t_] := SetOptions[ParametricPlot, PlotStyle -> {RGBColor[r/8, g/8, b/ 8], Thickness[t]}];\)\[IndentingNewLine] \(SetOptions[ParametricPlot, DisplayFunction -> Identity];\)\ \[IndentingNewLine] \(out = 11;\)\[IndentingNewLine] setScale[\(-out\), out, \(-out\), out, 300]\[IndentingNewLine] \(l1 = ParametricPlot[{t, t}, {t, \(-10\), 10}];\)\[IndentingNewLine] \(\(l2 = ParametricPlot[{\(-t\), t}, { t, \(-10\), 10}];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] \(wl[x0_, t0_, v_] := ParametricPlot[{x0 + v*t, t0 + t}, {t, \(-10\), 10}, PlotStyle -> {RGBColor[1/8, 1/8, 4/8], Thickness[ \ .01]}];\)\[IndentingNewLine] \(wr[x0_, t0_, v_] := ParametricPlot[{x0 + x, t0 + v*x}, { x, \(-10\), 10}, PlotStyle -> {RGBColor[1/8, 4/8, 1/ 8], Thickness[ .01]}];\)\[IndentingNewLine] future[n_] := ParametricPlot[{ x, \@\(x\^2 + n\^2\)}, {x, \(-10\), 10}, PlotStyle -> { RGBColor[6/8, 0/8, 6/8], Thickness[ .01]}]\[IndentingNewLine] past[n_] := ParametricPlot[{x, \(-\@\(x\^2 + n\^2\)\)}, {x, \(-10\), 10}, PlotStyle -> { RGBColor[6/8, 0/8, 6/8], Thickness[ .01]}]\[IndentingNewLine] right[n_] := ParametricPlot[{\@\(t\^2 + n\^2\), t}, {t, \(-10\), 10}, \ PlotStyle -> {RGBColor[6/8, 0/8, 0/8], Thickness[ .01]}]\[IndentingNewLine] left[n_] := ParametricPlot[{\(-\@\(t\^2 + n\^2\)\), t}, {t, \(-10\), 10}, PlotStyle -> {RGBColor[6/8, 0/8, 0/8], \ Thickness[ .01]}]\[IndentingNewLine] futureEvent[x0_, y0_, v_, t_] := {x0 + \(v*t\)\/\@\(1 - v\^2\), y0 + t\/\@\(1 - v\^2\)}\[IndentingNewLine] rightEvent[x0_, y0_, v_, x_] := {x0 + x\/\@\(1 - v\^2\), y0 + \(v\ x\)\/\@\(1 - v\^2\)}\[IndentingNewLine] \(futureSpace[v_, t_] := \(v*t\)\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(futureTime[v_, t_] := t\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(rightSpace[v_, x_] := x\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(\(rightTime[v_, x_] := \(v\ x\)\/\@\(1 - v\^2\);\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(a) World line of O's clock at x=1m; red:\>"\[IndentingNewLine] \(setColor[8, 0, 0, .001];\)\[IndentingNewLine] \(\(p3a = ParametricPlot[{1, t}, {t, \(-10\), 10}];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(b) World line of Particle Moving at .1c from (.5,0); green:\>"\ \[IndentingNewLine] \(setColor[0, 6, 0, .001];\)\[IndentingNewLine] \(\(p3b = wl[0, 0, .1];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(c) World line and world region of particle moving at .5c from (0,0); blue:\>"\[IndentingNewLine] \(setColor[0, 0, 8, .001];\)\[IndentingNewLine] \(p3cwl = wl[0, 0, .5];\)\[IndentingNewLine] \(setColor[0, 0, 6, .001];\)\[IndentingNewLine] \(p3cwr = wr[0, 0, .5];\)\[IndentingNewLine] \(\(Show[l1, l2, p3a, p3b, p3cwl, p3cwr, DisplayFunction -> \ $DisplayFunction];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] \*"\"\<(d) Locus of events whose interval from the origin is 1 secom. One secom is the amount an object would age if it moved at a steady pace from the origin to the location of the event. Since the author insists on making c unitless, I am creating the unit 'secom' to be the time it takes light to travel one meter. It \ is tiny, 3*\!\(10\^8\)secom = 1 second. (blue)\>\""\[IndentingNewLine] "\<(e) Locus of events whose interval from the origin is 1 meter. A 1 \ meter interval between two events means there is some observer where the two \ events occur simultaneously and one meter apart. (red)\>"\[IndentingNewLine] \(p3df = future[1];\)\[IndentingNewLine] \(p3dp = past[1];\)\[IndentingNewLine] \(setColor[7, 0, 0, .001];\)\[IndentingNewLine] \(p4el = left[1];\)\[IndentingNewLine] \(p4er = right[1];\)\[IndentingNewLine] \(Show[l1, l2, p3df, p3dp, p4el, p4er, DisplayFunction -> $DisplayFunction];\)\[IndentingNewLine] \(SetOptions[ListPlot, DisplayFunction -> Identity];\)\[IndentingNewLine] \(tTicks[ v_] := ListPlot[Table[futureEvent[0, 0, v, t], {t, \(-10\), 10, \ 1}], PlotStyle -> PointSize[0.03]];\)\[IndentingNewLine] \(xTicks[v_] := ListPlot[Table[rightEvent[0, 0, v, x], {x, \(-10\), 10, 1}], PlotStyle -> PointSize[0.03]];\)\[IndentingNewLine] Layers := Join[Table[future[n], {n, \(-10\), 10}], Table[past[n], { n, \(-10\), 10}], Table[left[n], {n, \(-10\), 10}], Table[right[n], {n, \(-10\), 10}]]\[IndentingNewLine] \(Show[l1, l2, xTicks[ .5], tTicks[ .5], p3cwl, p3cwr, Layers, DisplayFunction -> $DisplayFunction];\)\[IndentingNewLine] wRegions[v_] := Table[wr[futureSpace[v, t], futureTime[v, t], v], {t, \(-10\), 10}]\[IndentingNewLine] wLines[v_] := Table[wl[rightSpace[v, x], rightTime[v, x], v], {x, \(-10\), 10}]\[IndentingNewLine] \(vel[p_] := p\/\@\(p\^2 + 1\);\)\[IndentingNewLine] "\<Hello!\>"\[IndentingNewLine] \(Table[Show[wLines[vel[p]], wRegions[vel[p]], l1, l2, xTicks[vel[p]], tTicks[vel[p]], Layers, DisplayFunction -> $DisplayFunction], {p, \(-3\), 3, .05}];\)\[IndentingNewLine] \)
[edit] Licensing
| This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 License. |
[edit] Other versions
- Single frames
File history
Click on a date/time to view the file as it appeared at that time.
| Date/Time | Dimensions | User | Comment | |
|---|---|---|---|---|
| current | 19:13, 5 August 2006 | 300×300 (2.41 MB) | JDoolin (Talk | contribs) | (Reverted to earlier revision) |
| 19:11, 5 August 2006 | 300×300 (2.35 MB) | JDoolin (Talk | contribs) | (Reverted to earlier revision) | |
| 07:19, 28 June 2006 | 300×300 (2.41 MB) | Danielkwalsh (Talk | contribs) | (The original author of this gif image is Jonathan Doolin, and I, Daniel Walsh, have made it to repeat indefinitely so that an individual trying to understand the meaning of the animation can take more than one cycle to study it.) | |
| 00:52, 13 May 2006 | 300×300 (2.35 MB) | JDoolin (Talk | contribs) | (Author: Jonathan Doolin (Myself) GIF animation created with Mathematica 5.1 This idea is capable of intelligible expression in only one or a limited number of ways, but if this particular image is used, I'd just as soon be credited, so tag with CC-by-sa ) |
- Search for duplicate files
- Edit this file using an external application
See the setup instructions for more information.
File links
The following file is a duplicate of this file:

