0

我目前正在尝试SplineCurve3在 Three.js 中查找沿 a 的特定点的距离。比如……</p>

在此处输入图像描述

以上SplineCurve3是由 4 个预定义的点构成的;a、b、c 和 d。要沿着曲线找到一个点,我可以使用getPoint曲线类中的方法并沿曲线提供一个值 ( t)(在 0 - 起点 [a] - 和 1 - 终点 [d] 之间)。

我遇到的问题是我需要找到t用于构造曲线的中间点(b 和 c)的值。

实际上,我想做相反的事情getPoint。我想沿着路径传递一个点并t从一开始就获得(距离)。

我怎样才能做到这一点?我就是搞不定!

任何和所有的帮助表示赞赏。

4

2 回答 2

1

如果我没记错的话,SplineCurve3是一个 catmull-rom 样条曲线,这意味着 a=0、b=1/3、c=2/3、d=3/3 处的 t 值。

源代码中的这个通用公式是t = (point number) / (number of points - 1) https://github.com/mrdoob/three.js/blob/dev/src/extras/curves/SplineCurve3.js#L19

于 2013-05-20T15:01:34.363 回答
0

它不是 get_point 的反转(当然有可能),但也许您可以创建 SplineCurve3 ,其中最后一个点是您正在寻找的长度,然后简单地获取它的长度。然后您可以将此新长度与原始长度进行比较以获得 [0..1] 值。如果此解决方案没有奖励您,我可以检查源样条。

于 2013-05-20T13:48:43.823 回答