How to create 2D (3D) animation in Wolfram Mathematica with the camera following the object?

前端 未结 2 1433
灰色年华
灰色年华 2021-01-03 08:45

I have a graphical object which is moving along a trajectory. How can I make the camera follow the object?

2条回答
  •  南笙
    南笙 (楼主)
    2021-01-03 09:30

    Since the question asks about 2D, here's how you can emulate a camera in 2D Graphics.

    First, let's get the stackoverflow favicon.ico:

    so = First@Import["http://sstatic.net/stackoverflow/img/favicon.ico"]
    

    Well put this on top of some overlapping circles and make the "camera" follow the icon around by adjusting the PlotRange

    Manipulate[Graphics[{
       Table[Circle[{j, 0}, i], {i, 0, 1, .1}, {j, {-.5, .5}}],
       Inset[so, pos, {0, 0}, .2]},
      PlotRange -> {{-.5, .5}, {-.5, .5}} + pos],
     {{pos, {0, 0}, ""}, {-1.4, -1}, {1.4, 1}, ControlPlacement -> Left}]
    

    manipulate

    To show how it works (with out putting the above into Mathematica), we need to animate it. Originally I chose a variable step random walk drunk = Accumulate[RandomReal[{-.1, .1}, {200, 2}]] but it was a unpredictable! So instead, we'll make the icon follow the ABC logo

    drunk = Table[{1.5 Sin[t], Cos[3 t]}, {t, 0, 2 Pi, .1}];
    Animate[Graphics[{
       Table[Circle[{j, 0}, i], {i, 0, 1, .1}, {j, {-.5, .5}}],
       Inset[so, drunk[[pos]], {0, 0}, .2]},
      PlotRange -> {{-.5, .5}, {-.5, .5}} + drunk[[pos]]],
     {pos, 1, Length[drunk], 1}]
    

    animated

提交回复
热议问题