如何找到定义贝塞尔曲线的数学函数

时间:2009-12-05 22:12:24

标签: language-agnostic math bezier

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

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

哦,请指出我是否完全偏离找到交叉点。

1 个答案:

答案 0 :(得分:12)

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

这将给你两个方程式:

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 )加到那里,你最终会得到三个方程和三个未知数( x ,< em> y 和 t )。