C# 在两个点之间插值曲线,每个点都有一个方向向量

C# 在两个点之间插值曲线,每个点都有一个方向向量,c#,geometry,C#,Geometry,目前,我在3D空间中有两个点,每个点都有一个与之相关的向量,描述该点的方向 我想在两者之间插入一条平滑的ish曲线,从第一个点开始,面向该点上向量的方向,在第二个点结束,向量面向该点 我对如何处理这个问题有一个模糊的简单想法,但我想知道是否存在任何现有的技术或算法来解决这类问题?您可能正在寻找。除了指定两个端点的切线方向外,您还可以使用乘法参数自由调整向量的长度。三次Hermite曲线或三次Bezier曲线都可以实现您想要的。虽然三次Hermite曲线和三次Bezier曲线可以相互交换,但有一个

目前,我在3D空间中有两个点,每个点都有一个与之相关的向量,描述该点的方向

我想在两者之间插入一条平滑的ish曲线,从第一个点开始,面向该点上向量的方向,在第二个点结束,向量面向该点


我对如何处理这个问题有一个模糊的简单想法,但我想知道是否存在任何现有的技术或算法来解决这类问题?

您可能正在寻找。除了指定两个端点的切线方向外,您还可以使用乘法参数自由调整向量的长度。

三次Hermite曲线或三次Bezier曲线都可以实现您想要的。虽然三次Hermite曲线和三次Bezier曲线可以相互交换,但有一个主要区别:使用三次Bezier曲线将更容易操纵曲线的形状。只要控制多边形不自交,曲线就不会自交。当导数幅值较大时,使用三次Hermite曲线往往会产生自交曲线

显示一些代码。也许你比你想象的更接近。看看这是否有帮助:。我认为贝塞尔曲线应该做你想做的。您还可以看看这里的nurbs曲线实现:这听起来更像是一个数学问题,而不是编码问题。如果您知道算法,并且对如何将其转换为代码有疑问。。。否则建议你试试数学溢出。。。我来看看,谢谢@一种方法是立方体,其中两个点分别是第一个和最后一个控制点,第二个和第三个控制点分别是沿离开/接近向量的距离。演示如何绘制(分段)二维贝塞尔曲线;你应该能够适应它的三维之一。