2016-02-18 32 views
0

我试图用阴谋绘制3D图形并需要调整摄像机位置。我发现有两种方法可以做到这一点:或者用camera属性的Scene对象,或者用cameraposition属性。我对两者都有问题,但是这个问题与cameraposition有关:我无法弄清楚它是什么意思。如何在摄像机拍摄中工作

docs说:

|  cameraposition [required=False] (value=camera position list or 1d numpy 
|  array): 
|   Sets the camera position with respect to the scene. The first entry 
|   (a list or 1d numpy array of length 4) sets the angular position of 
|   the camera. The second entry (a list or 1d numpy array of length 3) 
|   sets the (x,y,z) translation of the camera. The third entry (a 
|   scalar) sets zoom of the camera. 
| 
|   Examples: 
|    [[0.2, 0.5, 0.1, 0.2], [0.1, 0, -0.1], 3] 

什么的4个数字相机的角位置是什么意思?他们是角度吗?以弧度?哪些角度?

回答

2

这里的Plotly的相机控制的3D绘图的解释:

http://nbviewer.jupyter.org/github/etpinard/plotly-misc-nbs/blob/master/3d-camera-controls.ipynb

为了完整起见,这里是一个简短的总结:

它可以使用camera,而不是cameraposition作为它似乎有更简单的解释。

相机位置由三个矢量确定:up,center,eye

向上矢量确定页面上的向上方向。默认值为(x=0, y=0, z=1),即z轴指向上。

中心向量确定有关场景中心的翻译。默认情况下,没有翻译:中心向量是(x=0, y=0, z=0)

眼矢量确定有关原点的相机视点。默认值是(x=1.25, y=1.25, z=1.25)

也可以通过减小眼球向量的范数来放大。

name = 'eye = (x:0.1, y:0.1, z:1)' 
camera = dict(
    up=dict(x=0, y=0, z=1), 
    center=dict(x=0, y=0, z=0), 
    eye=dict(x=0.1, y=0.1, z=1) 
) 
fig = make_fig(camera, name) 
py.iplot(fig, validate=False, filename=name) 
+0

哦,很好!这不完全是我的问题的答案,但它解决了我的问题无论如何:)其实,我有点困惑之间的相机和相机位置和思考问第二个问题关于“相机”(如何放大与“相机” ),这就是那个没有提出问题的答案。 :) 不管怎样,谢谢。 –

+0

我建议对答案进行编辑,添加链接页面的摘要,因为SO上的链接专用答案是不鼓励的。 –

+0

谢谢!遗憾的是,我也在这里复制:http://stackoverflow.com/questions/35478791/grab-camera-position-from-plotly-3d-graph/35497559#35497559 明天这将被添加到官方的Plotly Python文档中。 – user1561393

相关问题