Three.js 向向量延伸

Three.js 向向量延伸,three.js,Three.js,我被难住了 我已经创建了一个弹簧形状的线几何体,我希望能够变换这个弹簧,使一端保持固定,而另一端遵循矢量3位置。object3D.lookAt方法使它指向正确的方向,但我无法找到将其拉伸到该点的方法 我想这是一个matrix4.makeTransform,但我不知道如何计算每个方向的缩放量。我以为它只是简单地划分弹簧端点和目标点的x、y和z坐标,但这根本不起作用 是否有一种方法可以做到这一点,但我不知怎么错过了?你的.lookAt调用,使弹簧点成为它自己的z轴,希望是沿着弹簧长度运行的轴!如果你

我被难住了

我已经创建了一个弹簧形状的线几何体,我希望能够变换这个弹簧,使一端保持固定,而另一端遵循矢量3位置。object3D.lookAt方法使它指向正确的方向,但我无法找到将其拉伸到该点的方法

我想这是一个matrix4.makeTransform,但我不知道如何计算每个方向的缩放量。我以为它只是简单地划分弹簧端点和目标点的x、y和z坐标,但这根本不起作用


是否有一种方法可以做到这一点,但我不知怎么错过了?

你的.lookAt调用,使弹簧点成为它自己的z轴,希望是沿着弹簧长度运行的轴!如果你的网格设置正确

一旦你把它指向目标,你需要计算出目标有多远

使用类似

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


一旦知道该距离,并假设知道弹簧模型的默认长度,则只需通过距离/默认长度设置弹簧的z轴比例即可。。比如:

   springObject.scale.z = defaultLength/distance

如果您已经将spring模型缩放了一定的比例,那么这可能会有点复杂,您也必须考虑到这一点。

完成了!如果将来有人读到这篇文章,我实际上需要做``springObject.scale.z=distance/defaultLength```但除此之外,它还很到位,thanks@manthrax-copy只接受一个参数,一个向量3。你是想用复印件吗?哇,好主意。我修正了密码。里面少了一艘潜艇D谢谢@尼尔