Mathematica Code
This figure requires the use of Arrow3D, which is not included in the StandardPackages (as of Feb 2007). This can be obtained from Wolfram Research at this location. The required packages are:
<< Graphics`
<< Arrow3D`Arrow3D`
The code is:
wavefunction = ParametricPlot3D[{Sin[4t], -Cos[4t], t}, {t, 0, 5},
BoxRatios -> {1, 1, 4}, ImageSize -> 400, Boxed -> False, Axes ->
False, PlotPoints -> 600, ViewPoint -> {2, 2, 2}, PlotRange -> All]
repsi = ParametricPlot3D[{Sin[4t], -1, t, RGBColor[1, 0, 0]}, {t, 0, 5},
BoxRatios -> {4, 1, 1}, ImageSize -> 500,
Boxed -> False, Axes -> False, PlotPoints -> 600, PlotRange -> All]
impsi = ParametricPlot3D[{-1, -Cos[4t], t, RGBColor[0, 0, 102/255]}, {t, 0, \
5}, BoxRatios -> {4, 1, 1}, ImageSize -> 500, Boxed -> False, Axes -> False,
PlotPoints -> 600, PlotRange -> All]
end = ParametricPlot3D[{Sin[t], -Cos[t], 0}, {t, 0,
2π}, BoxRatios -> {4, 1, 1}, ImageSize -> 500, Boxed -> False,
Axes -> False, PlotPoints -> 600, PlotRange -> All]
xaxis = Graphics3D[Arrow3D[{0, 0, -1}, {0,
0, 6}, HeadSize -> UniformSize[.5], HeadColor -> Black]]
uaxis = Graphics3D[Arrow3D[{0, -1, 0}, {0, 3, 0}, HeadSize ->
UniformSize[.5], HeadColor -> Black]]
vaxis = Graphics3D[Arrow3D[{-1, 0, 0}, {3, 0, 0}, HeadSize ->
UniformSize[.5], HeadColor -> Black]]
plane = Graphics3D[Polygon[{{1.2, 1.2, 0}, {1.2, -1.2,
0}, {-1.2, -1.2, 0}, {-1.2, 1.2, 0}}]]
crate = WireFrame[Graphics3D[Cuboid[{1, 1, 0}, {-1, -1, 5}]]]
Show[wavefunction, xaxis, uaxis, vaxis, plane, repsi, impsi, end, crate]