向向量伸展

  • 本文关键字:向量 three.js
  • 更新时间 :
  • 英文 :


我被难住了

我创建了一个弹簧形状的线几何体,我希望能够变换这个弹簧,使一端保持固定在原位,而另一端遵循 vector3 位置。object3D.lookAt(( 方法让它指向正确的方向,但我想不出一种方法来将其拉伸到那个点。

我认为这将是一个matrix4.makeTransform((,但我不知道如何计算每个方向上缩放的数量。我以为这只是简单地将弹簧端点和目标点的 x、y 和 z 坐标分开,但这根本没有奏效。

有没有一种方法可以做到这一点,我不知何故错过了?

您的 .lookAt 调用,使弹簧点成为自己的 z 轴(希望轴沿着弹簧的长度运行!

一旦你把它指向目标,你需要弄清楚目标有多远......

使用类似的东西

distance = new THREE.Vector3().copy(targetPoint).sub( springObject.position).length()

一旦你知道了这个距离,并假设你知道弹簧模型的默认长度,那么它应该只是通过距离/defaultLength设置弹簧的z轴刻度的问题。

springObject.scale.z = defaultLength/distance

如果您已经将弹簧模型缩放了一定数量,这可能会有点复杂,您还必须考虑到这一点。

最新更新