我目前正试图找到Three.js中SplineCurve3
的特定点的距离。例如......
上述SplineCurve3
已由4个预定点构成; a,b,c和d。要沿曲线找到一个点,我可以使用getPoint
method in the curve class并沿曲线提供一个值(t
)(在0之间 - 开始[a] - 和1 - 结束[d])。
我遇到的问题是我需要找到用于构造曲线的中间点(b和c)的t
值。
实际上,我想反过来getPoint
。我想沿着路径传递一个点并从头开始给出t
(距离)。
我该怎么做?我无法解决这个问题!
感谢任何和所有帮助。
答案 0 :(得分: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
答案 1 :(得分:0)
它不是get_point的反转(当然有可能),但也许你可以创建SplineCurve3,其中最后一个点是你要查找的长度然后简单得到它的长度。然后你可以将这个新长度与原始长度进行比较,得到[0..1]值。如果这个解决方案没有奖励你,我可以查看源样条。