Three.js通过相机查看值到表单

时间:2013-12-22 18:22:43

标签: javascript three.js

我正在尝试将3D场景的值传递给表单字段,因此最终我可以将它们保存在数据库中。我可以使用大多数场景变量做到这一点,但我没有想到它是camera.lookat。以下是一些例子:

        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;

我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

Ex:用户使用输入

在环境中移动THREE.Mesh球
camera.lookAt(ball.position)
document.getElementById('camera_lookat_x').value = ball.position.x
...

答案 1 :(得分:0)

我在另一篇文章中回答了这个问题。关键是使用:

 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;