円偏波のアニメーション

2001/7/2 平野拓一

空間的に

電界と磁界の定義

xhat = {1, 0, 0};
yhat = {0, 1, 0};
zhat = {0, 0, 1};

    
ea[z_, t_] := 
        xhat*Re[ 
            ra*Exp[I θa] Exp[-I k z] Exp[
                I ω t] ];
eb[z_, t_] := 
        yhat*Re[ 
            rb*Exp[I θb] Exp[-I k z] Exp[
                I ω t] ];
ec[z_, t_] := ea[z, t] + eb[z, t];

    
ha[z_, t_] := Cross[zhat, ea[z, t]];
hb[z_, t_] := Cross[zhat, eb[z, t]];
hc[z_, t_] := ha[z, t] + hb[z, t];

値を代入

ra = 1;
θa = 0  °;
rb = 0;
θb = 90  °;
k = 2 π;
ω = 2 π;

アニメーション

Table[
Show[
{Graphics3D[{RGBColor[
                1, 0, 0], 
Table[
                Line[{{0, 0, z}, ec[z, t] + {0, 0, z}}], {z, 0, 2 - 0.001, 
                  0.05}]}
], 
Graphics3D[{RGBColor[0, 1, 0], 
Table[
                Line[{{0, 0, z}, hc[z, t] + {0, 0, z}}], {z, 0, 2 - 0.001, 
                  0.05}]}
]
}, 
BoxRatios -> {1, 1, 
            2}
], 
{t, 0, 1 - 0.001, 
        0.1}]

ベクトルの和として

<< Algebra`ReIm`;
<< 
        Graphics`Arrow`;
x2 = {1, 0};      
y2 = {Cos[θ], Sin[θ]};      
A = 
        ra Exp[I θa];
B = 
        rb Exp[I θb];
e = 
      A*x2 + B*y2  //  ComplexExpand

θ /: Im[θ] = 
          0;
ra /: Im[ra] = 
        0;
rb /: Im[rb] = 
        0;
θa /: Im[θa] = 
        0;
θb /: Im[θb] = 
        0;
ex = Re[e][[1]] + 
          I*Im[e][[1]];
ey = Re[
              e][[2]] + I*Im[e][[2]];

アニメーション

θ = 90  °;
ra = 1;
rb = 1;
θa = 0  °;
θb = θ + 180  °;
envelope = 
        ParametricPlot[
          Evaluate[(ra*x2*Cos[t + θa] + 
                rb*y2*Cos[t + θb])], {t, 0, 
            2 π}, 
AspectRatio -> 
            Automatic, 
DisplayFunction -> 
            Identity];
Table[
      Show[envelope, 
Graphics[{Arrow[{0, 
                0}, (ra*x2*Cos[t + θa] + 
                  rb*y2*Cos[t + θb])], 
{RGBColor[
                1, 0, 0], 
              Arrow[{0, 0}, 
                ra*x2*Cos[t + θa]]}, 
{RGBColor[1, 
                0, 0], Arrow[{0, 0}, 
                rb*y2*Cos[
                    t + θb]]}, 
{Dashing[{0.02, 
                  0.02}], 
              Line[{rb*y2*
                    Cos[t + θb], (ra*x2*Cos[t + θa] + 
                      rb*y2*Cos[
                          t + θb])}]}, 
{Dashing[{0.02, 0.02}], 
              Line[{ra*x2*
                    Cos[t + θa], (ra*x2*Cos[t + θa] + 
                      rb*y2*Cos[
                          t + θb])}]}
}], 
AspectRatio -> 
          Automatic, 
PlotRange -> {{-1, 
              1}, {-1, 1}}, 
Frame -> 
          True, 
FrameTicks -> 
          False, 
DisplayFunction -> $DisplayFunction]
, {t, 0, 2*π - 0.001, (2*π)/10}]