前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Wolfram 语言制作卷帘快门成像的飞机螺旋桨

Wolfram 语言制作卷帘快门成像的飞机螺旋桨

作者头像
WolframChina
发布2022-04-01 13:04:20
3780
发布2022-04-01 13:04:20
举报
文章被收录于专栏:WOLFRAMWOLFRAM

本文译自Wolfram社区文章:https://community.wolfram.com/groups/-/m/t/2489445。点击左下角“阅读原文”了解更多。

大多数手机相机使用滚动快门捕捉图像。 这意味着图像不是一次全部捕获,而是通过水平或垂直滚动线捕获。这种滚动速度很快,在大多数情况下并不明显。 但是对于运动与相机滚动速度相媲美的场景,事情看起来会失真。 一辆快速行驶的汽车可能看起来被剪断、挤压或拉伸,而旋转的螺旋桨看起来很奇怪。要查看上图中的奇怪图案是如何出现的,让我们首先将螺旋桨理想化为极坐标中的三叶草:

代码语言:javascript
复制
propeller[θ_] := Sin[3θ + π/2];

PolarPlot[propeller[θ], {θ, 0, 2π}]

现在随着滚动的发生,每条滚动线都将看到螺旋桨的不同旋转版本。在极坐标中,这只是角度的变化,例如 螺旋桨[θ + shift]。如果我们假设相机以恒定速度沿 x(水平)方向滚动,那么移位值将是 x 的常数倍。对于这个例子,我们假设螺旋桨在相机完成滚动时旋转了 2.25 圈。现在我们已经混合了极坐标和笛卡尔坐标,我们将切换到 RegionPlot:

代码语言:javascript
复制
revs = 2.25;

plot = With[{r = Sqrt[x^2 + y^2], θ = ArcTan[x, y]},
  RegionPlot[
    r <= propeller[θ - π*revs*x],
    {x, -1, 1}, {y, -1, 1},
    Frame -> None
    PlotPoints -> 100
  ]
]

我们可以通过自己模拟卷帘快门来直观地了解为什么会发生这种情况:

代码语言:javascript
复制
Manipulate[
  Show[
    plot,
    Graphics[{{EdgeForm[], White, HalfSpace[{-1, 0}, {t, 0}]}, 
      {Thick, Black, InfiniteLine[{{t, 0}, {t, 1}}]}}],
    PolarPlot[
      propeller[θ - π*revs*t], 
      {θ, 0, π}, 
      RegionFunction -> Function[{x, y, r, θ}, x > t], 
      PlotStyle -> Red
    ]
  ],
  {t, -1, 1}
]

最后,我们可以模拟旋转螺旋桨视频的样子。 本质上,视频的每一帧都会对 θ 产生恒定的偏移(与滚动的偏移如何依赖于 x 不同)。

代码语言:javascript
复制
Monitor[
  plots = With[{r = Sqrt[x^2 + y^2], θ = ArcTan[x, y]},
    Table[
      RegionPlot[
        r <= propeller[θ - π*revs* x + α],
        {x, -1, 1}, {y, -1, 1},
        Frame -> None
        PlotPoints -> 100
      ],
      {α, 0, 2π, π/20}
    ]
  ];,
  α
]

省略了对每个螺旋桨进行不同样式和着色的代码,结果如下:


Wolfram 13.0.1 软件试用

Wolfram 网店:https://store.wolfram.com/catalog/

创建 Wolfram ID 登录扫码下载试用版:

Wolfram Mathematica:

https://www.wolfram.com/mathematica/trial/

Wolfram System Modeler:

https://www.wolfram.com/system-modeler/trial/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WOLFRAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档