【问题标题】:three.js - focus camera on THREE.Geometry verticesthree.js - 将相机聚焦在 THREE.Geometry 顶点上
【发布时间】:2016-08-12 03:04:27
【问题描述】:
  1. 我想将相机聚焦在 THREE.Geometry 上,一次一个顶点,
  2. 将相机转换到同一几何体的下一个顶点

我应该如何完成1和2?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    我创建了一个小提琴。

    http://jsfiddle.net/5oajajpd/

    函数 move camera 遍历每个顶点并设置相机位置。要使用动画进行转换,您可以通过 jquery animate 函数或您选择的动画库设置 x、y 和 z 属性。

    移动相机功能由间隔触发。在这个球体示例中,它将永远围绕球体旋转。

    var i = 0;
    
    function moveCamera() {
      var point = mesh.geometry.vertices[i];
      var coeff = 1 + altitude / rad;
      camera.position.x = point.x * coeff;
      camera.position.y = point.y * coeff;
      camera.position.z = point.z * coeff;
      camera.lookAt(mesh.position);
      i++;
      if (i > mesh.geometry.vertices.length) {
        i = 0;
      }
    }
    

    【讨论】:

    • 谢谢,在我的情况下,我有 THREE.Geometry 和一堆 THREE.Vector3 顶点推到它。有没有特定的方法来查看 Vector3 ?
    • 在示例中,mesh.position 是vector3。将camera.lookAt参数替换为顶点,相机将指向顶点。
    • 这正是我无法做到的。就我而言,我将这些顶点推送到几何,该几何是添加到 Object3D(最终添加到场景中)的 PointCloud 的一部分。这种嵌套是否会导致相机无法查看这些顶点等问题?
    • 不。任何作为有效 Vector3 对象的顶点都将在 camera.lookAt 设置器中工作。
    • 这里相机不动。一个小球体从一个顶点移动到大球体的顶点。相机将自己指向始终查看小球体移动到的位置。 jsfiddle.net/85nbo00p 检查是否已经将顶点推送到顶点对象,检查 Object3d 内是否只有一个对象,还要检查相机的原点。
    猜你喜欢
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2021-02-27
    • 1970-01-01
    • 2017-04-18
    相关资源
    最近更新 更多