Skip to content

摄像机

每个画布,包括默认画布 scene,都包含一个摄像机。默认情况下,摄像机指向场景中心,并放大或缩小以将所有对象都放入其视野范围内。默认情况下,用户可以放大或缩小,围绕场景旋转摄像机,以及上下或左右平移。

用户对摄像机的控制

属性默认值说明
scene.userzoomTrue用户可以放大或缩小场景。
scene.userspinTrue用户可以旋转摄像机。
scene.userpanTrue用户可以横向或纵向平移场景。
scene.autoscaleTrue摄像机会自动缩放以保持所有对象在视野内。

程序对视图的控制

上图描述了下面所讨论的 scene 的属性,并指示了它们之间的关系。

属性默认值说明
scene.center<0,0,0>摄像机持续注视的位置。
scene.forward<0,0,-1>指向摄像机所指方向的向量。如果更改了 scene.forward,摄像机将移动到一个位置,从该位置 scene.forward 指向 scene.center
scene.rangeN/Ascene.center 到画布边缘的距离。对于矩形画布,range 是两种可能距离中的较短距离(对于宽度大于高度的画布,为 y 方向)。
scene.fovN/A摄像机的视野,以弧度为单位。如果 scene.autoscaleTrue,则自动更改。
scene.up<0,1,0>垂直于 scene.forward 的向量。更改 scene.up 会围绕 z 轴旋转摄像机。

直接操作摄像机

如果,例如,您正在对场景进行飞越:

属性说明
scene.camera.pos摄像机的位置。如果 scene.autoscaleTrue,则会自动更改。更改 scene.camera.pos 会将 scene.center 更改为 scene.camera.pos + scene.camera.axis
scene.camera.axis摄像机当前指向的方向。scene.camera.axis = scene.center - scene.camera.pos。更改 scene.camera.axis 会更改 scene.forwardscene.center。注意:可能会将摄像机指向一个看不到任何东西的方向。
scene.camera.rotate旋转摄像机:scene.camera.rotate(angle=myangle, axis=myaxis, origin=myorigin)
scene.camera.follow跟随一个对象:scene.camera.follow(myobject) 将场景中心重置为 myobject 的当前位置。要关闭跟随,请设置:scene.camera.follow(None)