我有两个函数描述2D中的两条曲线。
p1 = f1(t1)
p2 = f2(t2)
其中p1
和p2
是向量,t1
和t2
是0.0到1.0之间的标量。
这些曲线都是凸的,并且“腰部”面对着彼此。它们可以旋转,并且可以定义新的函数y = h(x)
,使得它们在x
上的导数单调递增/递减。
例如:
我将尝试寻找一种高效的算法来找到这些曲线之间的最小距离。我认为可能的方法是定义一个距离函数:
g(t1, t2) = |f1(t1) - f2(t2)|
然后使用 牛顿法 的一般化方法来解决方程组。
0 = ∂g(t1, t2)/∂t1 // partial derivative of g for t1
0 = ∂g(t1, t2)/∂t2 // partial derivative of g for t2
但是,我不确定这是否正确,而且有点不方便,因为我需要计算g
的一阶和二阶导数,这需要进行数值计算。
是否有更简单、可能更快的算法来完成这个任务?