我试图实现贝塞尔曲线和线段相交测试。我搜索到的最接近的事情是采用贝塞尔曲线(为简单起见,将其限制为三个控制点)找到生成该曲线的数学函数并将其放在原点上。然后,使用线段的函数作为另一个函数,让它们相等并求解方程式。
许多消息来源陈述上述解决方案(除非我误解了它们),我的问题是我无法找到计算生成贝塞尔曲线的数学函数的方法。
哦,请指出我是否完全偏离找到交叉点。
答案 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 )。