Javascript Three.js将摄影机查看值传递给窗体

Javascript Three.js将摄影机查看值传递给窗体,javascript,three.js,Javascript,Three.js,我试图将3D场景的值传递到form字段,以便最终将它们保存到数据库中。我可以用大多数场景变量很好地做到这一点,但我还没有为我们的相机计算出来。瞧。以下是几个例子: document.getElementById('camera_rotation_x').value=camera.rotation.x; document.getElementById('group_position_x').value=group.position.x; docume

我试图将3D场景的值传递到form字段,以便最终将它们保存到数据库中。我可以用大多数场景变量很好地做到这一点,但我还没有为我们的相机计算出来。瞧。以下是几个例子:

        document.getElementById('camera_rotation_x').value=camera.rotation.x;
        document.getElementById('group_position_x').value=group.position.x;
        document.getElementById('spotLight_position_x').value=spotLight.position.x;
        document.getElementById('spotLight_rotation_x').value=spotLight.rotation.x;
这些都很好用

但是,对于camera.lookat.x,它不起作用:

        document.getElementById('camera_lookat_x').value=camera.lookat.x;
        document.getElementById('camera_lookat_y').value=camera.lookat.y;
        document.getElementById('camera_lookat_z').value=camera.lookat.z;

我做错了什么?

.lookAt是一个用于设置相机旋转的功能。它不是带有数据的变量

但是,如果我使用.look来保持由用户控制的对象在视图中,我可以简单地使用这些坐标

用户使用输入在环境中移动一个三网格球

camera.lookAt(ball.position)
document.getElementById('camera_lookat_x').value = ball.position.x
...

我在另一篇帖子中得到了回答。关键在于使用:

 controls.target
下面是我传递这些变量的代码:

 document.getElementById('controls_target_x').value=controls.target.x;
 document.getElementById('controls_target_y').value=controls.target.y;
 document.getElementById('controls_target_z').value=controls.target.z;

谢谢你。我们可能在正确的轨道上。该行产生错误:camera.lookAt(ball.position);我在渲染函数之前,在渲染函数内部和之后都尝试过。除非你有一个名为“ball”的对象,它有一个位置,否则这不会有任何作用。哦,是的,当然。我的目标是“群体”。现在我明白你的建议,但现在我在寻找什么。这是我的页面和脚本:您可以看到我是如何将摄影机位置的变量值传递给右侧的表单的。当我们使用轨迹球控制器旋转对象时,值会发生变化。在对象上单击鼠标右键并拖动它,似乎可以更改摄影机正在查看的点。我也希望能够将这些值传递给表单。它不会改变对象的位置,否则这些值会在表单中更新(这已经过测试)。我不知道如何获取这些lookat值来将它们传递给表单。如果你能帮忙,谢谢你。