5

我正在尝试实现贝塞尔曲线和线段相交测试。我的搜索最接近的结果是采用贝塞尔曲线(为简单起见,我们将其限制为三个控制点)找到生成该曲线的数学函数并将其放在 origo 上。然后,将线段的函数用作另一个函数,让它们相等并求解方程。

许多消息来源都说明了上述解决方案(除非我误解了它们),我的问题是我找不到计算生成贝塞尔曲线的数学函数的方法。

哦,请指出我是否完全偏离了寻找交叉点的轨道。

4

1 回答 1

13

贝塞尔曲线是一个参数函数。二次贝塞尔曲线(即三个控制点)可以表示为:F(t) = A(1 - t)^2 + 2B(1 - t)t + Ct^2其中ABC是点,t从零到一。

这将为您提供两个等式:

x = a(1 - t)^2 + 2b(1 - t)t + ct^2

y = d(1 - t)^2 + 2e(1 - t)t + ft^2

例如,如果您将直线方程 ( y = kx + m ) 添加到其中,您将得到三个方程和三个未知数 ( xyt )。

于 2009-12-05T22:34:34.560 回答