Viewpoint->{x,y,z} 的变化对图形对象大小的影响不是我所期望的。怎么修?

nil*_*ock 2 wolfram-mathematica

如果您运行以下代码片段:

 Manipulate[
   Graphics3D[
     {Cuboid[{{-1, -1, -1}, {1, 1, 1}}], Sphere[{5, 5, 5}, 1]}, 
      ViewPoint -> {1, 1, a}, AxesOrigin -> {0,0,0}
   ], 
   {a, 1, 100}
 ]
Run Code Online (Sandbox Code Playgroud)

并使用滑块将视点从 (1,1,1) 移动到 (1,1,100),您将看到一段时间后对象的大小保持固定。

问题。

1. 当我将视点移离场景更远时,我希望对象变得更小。这应该如何在 Mathematica 中完成?

( 编辑: )

2. “相机”相对于 Viewpoint 的位置是什么?

And*_*lan 5

请参阅视角。请注意,在“更多信息”下,默认设置ViewAngle -> Automatic实际上等同于ViewAngle -> All您缩小到足够远的程度。

您只需要为 ViewAngle 添加显式设置:

Manipulate[
 Graphics3D[{Cuboid[{{-1, -1, -1}, {1, 1, 1}}], Sphere[{5, 5, 5}, 1]},
   ViewPoint -> {1, 1, a}, AxesOrigin -> {0, 0, 0}, 
  ViewAngle -> 35 Degree], {a, 1, 100}]
Run Code Online (Sandbox Code Playgroud)