【问题标题】:Viewing arbitrary geometry in THREE JS在三个 JS 中查看任意几何图形
【发布时间】:2019-09-24 20:58:02
【问题描述】:

我必须将 csv 文件中的 3 种不同类型的几何体(立方体、线和点)加载到场景中,添加相机和灯光来查看它。

听起来很简单,但我在点和定位到场景中心的点收集方面遇到了困难。

我正在寻找一些伪代码,其中概述了无论几何形状如何都能实现这一目标的方法。

我已经用立方体来解决这个问题,但我正在努力解决点和线。

我目前使用的流程大概是-:

  1. 执行导入
  2. 将导入的几何图形封装在一个组中
  3. 原点位置组
  4. 创建相机并指向原点

欢迎任何想法。

丰富

【问题讨论】:

    标签: three.js 3d


    【解决方案1】:

    一种典型的方法是计算几何的 AABB,并使用它使几何在原点居中。 three.js 中的典型代码如下所示:

    const aabb = new THREE.Box3().setFromObject( object );
    const center = aabb.getCenter( new THREE.Vector3() );
    
    object.position.x += ( object.position.x - center.x );
    object.position.y += ( object.position.y - center.y );
    object.position.z += ( object.position.z - center.z );
    

    如果您需要更完整的解决方案来自动配置相机和控件 (THREE.OrbitControls) 并使用最佳参数,请查看以下基于three.js 的代码glTF 查看器:

    https://github.com/donmccurdy/three-gltf-viewer/blob/691ca91fddb69b6e1ba3d3a49753142e38082ef7/src/viewer.js#L218-L247

    three.js R108

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 2013-10-06
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 2019-10-05
      • 2017-12-22
      • 2023-04-08
      相关资源
      最近更新 更多