【问题标题】:Three.js - How can I calculate the distance between two 3D positions?Three.js - 如何计算两个 3D 位置之间的距离?
【发布时间】:2014-05-15 18:36:22
【问题描述】:

我已经尝试在 Google 上搜索几种不同的内容。似乎我什么都找不到。我想我不妨将问题上传到 Stack Overflow。

谢谢!

【问题讨论】:

    标签: camera three.js distance mesh between


    【解决方案1】:

    其中 v1 和 v2 的类型为 THREE.Vector3:

    function distanceVector( v1, v2 )
    {
        var dx = v1.x - v2.x;
        var dy = v1.y - v2.y;
        var dz = v1.z - v2.z;
    
        return Math.sqrt( dx * dx + dy * dy + dz * dz );
    }
    

    更新: 在three.js的r74版本中可以使用.distanceTo( v )方法。

    【讨论】:

    • 看不到对此投反对票的原因。修复它
    • 我猜它被否决了,因为它不是用 Javascript 编写的,这就是 Three.js 所写的,绝对不是对 imo 投反对票的理由。我刚刚添加了一个编辑,感谢@gaitat的回答
    • 投反对票,因为 Three.js 中有一个现有的函数。您能否更新您的答案以反映这一点?谢谢!
    • @EugeneKulabuhov 这合适吗?
    • @gaitat 完美!谢谢!
    【解决方案2】:

    在three.js中,计算两个3D位置之间的距离,使用Vector3.distanceTo()方法:

    var distance = vec1.distanceTo( vec2 );
    

    three.js r.74

    【讨论】:

      【解决方案3】:

      在 Javascript 中:

      function dist(x0,y0,z0,x1,y1,z1){
      
      deltaX = x1 - x0;
      deltaY = y1 - y0;
      deltaZ = z1 - z0;
      
      distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
      
      return distance;
      }
      

      【讨论】:

      • 在three.js中,使用Vector3.distanceTo()方法:distance = vec1.distanceTo( vec2 );
      • @WestLangley,您能否将其发布为答案?
      • @EugeneKulabuhov 完成。
      猜你喜欢
      • 2018-09-21
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 2011-12-24
      • 2016-02-27
      相关资源
      最近更新 更多