Wolfram mathematica 在mathematica中维护图形3D的一致绘图区域

Wolfram mathematica 在mathematica中维护图形3D的一致绘图区域,wolfram-mathematica,bounding-box,graphics3d,Wolfram Mathematica,Bounding Box,Graphics3d,我正在尝试使用动画与图形3d一起制作具有振荡长度的向量列表。基本上,从原点绘制随机三维向量列表。然后,向量的长度由具有随机相位的余弦函数控制 比如说, randomVec[r_] := r*Normalize@RandomVariate[NormalDistribution[], 3] vecs = Table[randomVec[i], {i, 10^2}]; hues = Table[RandomReal[], {i, 10^2}]; rans = Table[RandomReal[], {

我正在尝试使用
动画
图形3d
一起制作具有振荡长度的向量列表。基本上,从原点绘制随机三维向量列表。然后,向量的长度由具有随机相位的余弦函数控制

比如说,

randomVec[r_] := r*Normalize@RandomVariate[NormalDistribution[], 3]
vecs = Table[randomVec[i], {i, 10^2}];
hues = Table[RandomReal[], {i, 10^2}];
rans = Table[RandomReal[], {i, 10^2}];

Animate[
    Graphics3D[
        Table[{Hue[hues[[i]]], 
              Arrow[Tube[{{0, 0, 0}, 
              vecs[[i]] + Cos[\[Eta] + rans[[i]]*Pi]*vecs[[i]]}, 
              Scaled[0.007]]]}, {i, 10^2}],
     Boxed -> False, AxesOrigin -> {0, 0, 0}, 
     ViewPoint -> {Pi, Pi, Pi}],
{\[Eta], 0, 2*Pi}]
但是,当我运行这段代码时,动画的原点似乎在查看帧内反弹。如何强制
图形3d
每次在
动画中调用时都使用完全相同的查看框


此外,这段代码可能是低效的,所以任何有关如何使其动画更顺利的提示将不胜感激

我认为在您的案例中,首先要尝试的是添加一个

 PlotRange->{{xmin, xmax},{ymin, ymax},{zmin, zmax}}
选择权

它将控制立方体的大小,而不受计算结果的影响 数据


您可能还需要查看选项
BoxRatios
spherecalRegion
,以便更好地缩放结果。

很好,一起使用
PlotRange
spherecalRegion
使其看起来很好。现在我只想尝试平滑动画…动画是伟大的快速建立一个互动动画。问题是它降低了计算速度的分辨率。如果要生成最终的平滑动画,可能需要对其进行预计算,有几种方法。这值得再问一个问题,我建议你在mathematica.stackexchange问这个问题,那里有很多专家。