如何解决如何获取Three.js场景的坐标范围?
当我使用html和javascript,摄像机和渲染器创建场景并在浏览器中显示该场景时:如何找到场景的可见范围?
在我的具体情况下,我仅显示一个二维x / y场景,上面带有对象。但是,给定一个场景,最小x / y值是多少,这样一个对象就可以创建例如与
var object = new THREE.Mesh( circle.clone(),new THREE.MeshBasicMaterial( { color: new THREE.Color('white'),opacity: 0.5 } ) );
object.position.x = ??;
object.position.y = ??;
object.position.z = 0;
object.geometry.scale(0.8,0.8,1);
scene.add( object );
仅在浏览器窗口的边缘可见吗?
解决方法
您应该简单地获取3D世界的大小(可见部分取决于您的相机设置),例如:
const vFOV = (camera.fov * Math.PI) / 180;
const height = 2 * Math.tan(vFOV / 2) * Math.abs(camera.position.z);
const width = height * camera.aspect;
object.position.x = -width / 2;
object.position.y = -height / 2;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。