C# 如何创建/使用可移动样条线?

C# 如何创建/使用可移动样条线?,c#,math,unity3d,spline,C#,Math,Unity3d,Spline,我正在创建一个系统,其中玩家角色沿着定义的样条线路径移动。以下是我需要做的: 输入矢量3(XYZ)坐标的数组 从这些矢量生成样条线数据 沿样条曲线返回给定相对距离的矢量3(0.0-1.0) 我使用的是一个提供的库,从中可以实现我所需要的功能,但它生成的样条曲线有一种趋势,即在曲线周围减速,在直线上加速,从而在控制点周围“弹射”。这似乎是样条插值的自然副作用 不幸的是,我的角色需要以恒定的速度移动,我需要一种方法来推导它 < > C++中有一个很好的库(我可以转换),我可以用吗?p> 如果不能做到

我正在创建一个系统,其中玩家角色沿着定义的样条线路径移动。以下是我需要做的:

  • 输入矢量3(XYZ)坐标的数组
  • 从这些矢量生成样条线数据
  • 沿样条曲线返回给定相对距离的矢量3(0.0-1.0)
  • 我使用的是一个提供的库,从中可以实现我所需要的功能,但它生成的样条曲线有一种趋势,即在曲线周围减速,在直线上加速,从而在控制点周围“弹射”。这似乎是样条插值的自然副作用

    不幸的是,我的角色需要以恒定的速度移动,我需要一种方法来推导它

    < > C++中有一个很好的库(我可以转换),我可以用吗?p> 如果不能做到这一点,是否有一个像样的参考样条曲线数学工作原理,我可以从中学习


    谢谢

    你所说的“在曲线上减速,在直线上加速”是什么意思?样条曲线本身没有任何速度的概念,速度通常意味着距离/时间,无论样条曲线的形式如何,都不应该改变,或者?你想知道的是如何使用弧长之类的东西。如果你更喜欢纸质书,《计算机动画:算法和技术》第3章是一个很好的资源。介绍。在我链接的pdf中,应该给你足够的术语来找到更好的资源。谢谢你,我已经浏览了一些资源,这看起来会非常有帮助。你有点要看,还有控制点吗?(有帮助吗?@TomMurray您可以重新绘制路径样条线。我不知道代码是否有用,因为它缺少注释。但可能正是这一点点让你走完了剩下的路。