偏振光三维视角代码(Mathematica)

                     

贡献者: int256; addis

  • 本文处于草稿阶段。

   代码如下供参考,对于其中的参数 phi,原文中生成的图片,右旋圆偏振取了 $\pi/2$、右旋椭圆偏振取了 $\pi/4$、线偏振取了 $\pi$。

图
图 1:代码界面
图
图 2:线偏振
图
图 3:右旋圆偏振(取 $\pi/2$)
图
图 4:右旋椭圆偏振(取 $\pi/4$)

phi = \[Pi];(*delta Phi*)

r = \[Pi];(*渲染范围“半径”*)
zSup = 4 r;(*z 上界*)
zInf = -r; (*z 下界*)

g3d[t_] := Graphics3D[
   {
    Table[{Gray, 
      Line[{{-r, y, 0}, {r, y, 0}}]}, {y, {-r, -r/2, r/2, r}}],
    Table[{Gray, 
      Line[{{x, -r, 0}, {x, r, 0}}]}, {x, {-r, -r/2, r/2, r}}],
    Table[{Gray, Line[{{-r, 0, z}, {r, 0, z}}]}, {z, r, zSup, r}],
    Table[{Gray, Line[{{x, 0, 0}, {x, 0, zSup}}]}, {x, {-r, r}}],
    Table[{Gray, Line[{{0, -r, z}, {0, r, z}}]}, {z, r, zSup, r}],
    Table[{Gray, Line[{{0, y, 0}, {0, y, zSup}}]}, {y, {-r, r}}], Red,
     Arrow[{{0, 0, 0}, {r Cos[t], r Cos[t + phi], 0}}],
    Table[{Gray, Thin, 
      Line[{{0, 0, z}, {r Cos[t + (z - zSup)], 
         r Cos[t + phi + (z - zSup)], z}}]}, {z, 0, zSup, 2 \[Pi]/90}],
    
    PlotRange -> {{-r - r/4, r + r/4}, {-r - r/4, r + r/4}, {zInf, 
       zSup}}
    }, 
   Boxed -> False, AxesOrigin -> {0, 0, 0}, Ticks -> None, 
   ViewPoint -> {2, 2, 2}, 
   ViewVertical -> {0, 1, 0}];  (*密布光矢,即当前时刻光矢+阴影*)

p3dObject[t_] := 
 ParametricPlot3D[{r Cos[u], r Cos[u + phi], zSup}, {u, 0, 2 Pi}, 
  PlotStyle -> {Pink, Dashed}];(*轨迹投影*)
p3dLocus[t_] := 
 ParametricPlot3D[{r Cos[t + (z - zSup)], r Cos[t + phi + (z - zSup)],
    z}, {z, 0, zSup}, PlotStyle -> {Red, Thick}];(*轨迹*)
p3dX[t_] := 
 ParametricPlot3D[{x, 0, z}, {x, -r, r}, {z, 0, zSup}, Mesh -> None, 
  PlotStyle -> {Blue, Opacity[0.025]}];
p3dY[t_] := 
 ParametricPlot3D[{0, y, z}, {y, -r, r}, {z, 0, zSup}, Mesh ->  None, 
  PlotStyle ->  {Green, Opacity[0.025]}]; (*x、y平面*)
p3dZ[t_] := 
 ParametricPlot3D[{f, g, zSup}, {f, -r - r/4, r + r/4}, {g, -r - r/4, 
   r + r/4}, Mesh -> None, 
  PlotStyle -> {Purple, Opacity[0.2]}];(*轨迹投影所在平面*)

image[t_] := 
 Show[g3d[t], p3dX[t], p3dY[t], p3dLocus[t], p3dObject[t], 
  p3dZ[t]](*合并*)

   可以使用 Export 来输出 gif 格式动画,亦或直接使用 image 函数来输出图片。


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利