Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js使对象相对于外部容器div保持静态-现在使用JSFIDLE编辑_Three.js - Fatal编程技术网

Three.js使对象相对于外部容器div保持静态-现在使用JSFIDLE编辑

Three.js使对象相对于外部容器div保持静态-现在使用JSFIDLE编辑,three.js,Three.js,因此,我有一个html-div内部呈现的3.js-canvas的基本设置。在3d世界中,我想定位一个对象,使其看起来像是粘在这个外部div上(不应该以任何方式移动)。目前我有以下解决方案: render { object.position.x = camera.position.x; object.position.y = camera.position.y; object.position.z = camera.position.z - 200; } 这适用于

因此,我有一个html-div内部呈现的3.js-canvas的基本设置。在3d世界中,我想定位一个对象,使其看起来像是粘在这个外部div上(不应该以任何方式移动)。目前我有以下解决方案:

render {    
    object.position.x = camera.position.x;
    object.position.y = camera.position.y;
    object.position.z = camera.position.z - 200;
}
这适用于平移相机(我已禁用旋转,因为我不需要它)。然而,一旦我放大或缩小,它显然不再起作用,因为缩放不会改变相机的位置值。我的方法是将camera.zoom因子合并到上述函数中,但我无法使其正常工作。是否有一个简单的转换函数或我可以使用的东西


编辑:我创建了一个JSFIDLE,希望这有助于找到解决方案。只要用鼠标右键平移相机,黄色平面就不会移动(想要的行为)。当您放大或缩小时,它开始移动(不需要的行为):

对不起,我没有答案,但是从摄影机平截体重新定位对象看起来很奇怪。将相机位置约束在虚拟(对象位置、初始位置)线上不是更好(至少更容易)吗?嘿,谢谢你的输入,但我不能完全理解你的评论。我希望能够不受限制地平移和缩放相机,只需固定黄色元素的位置。您可以简单地使用标准html元素…嗯,场景中的html元素会正确地影响其中的3d元素吗?我希望黄色平面是一种垂直切割整个场景的剪切平面,在与它接触的位置切割对象。抱歉,没有看到前面的蓝色圆点抱歉,我没有答案,但是从摄影机平截面重新定位对象看起来很奇怪。将相机位置约束在虚拟(对象位置、初始位置)线上不是更好(至少更容易)吗?嘿,谢谢你的输入,但我不能完全理解你的评论。我希望能够不受限制地平移和缩放相机,只需固定黄色元素的位置。您可以简单地使用标准html元素…嗯,场景中的html元素会正确地影响其中的3d元素吗?我希望黄色平面是一种垂直切割整个场景的剪切平面,在与它接触的位置切割对象。对不起,没有看到蓝色圆点在前面