用点等于点之间距离的点细分曲线

时间:2019-07-13 15:34:57

标签: three.js curve

在three.js中,我将push的一些Vector3()坐标转换为变量,然后执行THREE.CatmullRomCurve3(points).getPoints(points*32);来获得曲线。如果我沿形状拉伸形状,一切看起来都很好。

我现在遇到的问题是我希望摄像机沿着该曲线运行,但是速度会根据它从一个(原始)点到另一个点的距离而变化。根据threejs.org的示例之一,我遍历了每个新点并将相机的位置设置为这些点。但是,如果两个点相距1米或2米,则每个点之间仍是32个子点,并且摄像机将在同一时间到达终点。

我该怎么做,一个1米长的拉伸获得32个子点,而一个2米长的拉伸获得64个子点,那么相机完成2米长的拉伸所需的时间是1米长的两倍? >

1 个答案:

答案 0 :(得分:0)

  

我现在遇到的问题是我希望摄像机沿着该曲线运行,但是速度会根据它从一个(原始)点到另一个点的距离而变化。

如果您使用Curve.getSpacedPoints()而不是Curve.getPoints(),则会在曲线上收到等距的点。

three.js R106