0

检查两条三次贝塞尔曲线是否相交会提供指向http://cagd.cs.byu.edu/~557/text/ch7.pdf的链接.. 听起来在第一遍时可读.. 但它不是代码。

我想知道是否有人真的用任何常见的编程语言实现了这个算法。我会对一些可以使用两条三次贝塞尔曲线或一条贝塞尔曲线和一条直线来实现算法的 Javascript 代码(其他语言可以)感兴趣。

4

1 回答 1

0

对于三次贝塞尔曲线和直线,使用第 7.3 节参数曲线和隐式曲线的交点可能最容易。您可以将直线写为a x+b y+c=0。如果您通过三次 p(t) 和 q(t) 给出 x 和 y 坐标的贝塞尔曲线,则可以将它们代入直线方程。这给出了一个立方 in t,您可以通过您最喜欢的求根算法来解决它。

类似的问题检查两条三次贝塞尔曲线是否相交有一些很好的答案。特别是第一个答案提到了具有所有这些代码的渐近线库。您可以在http://sourceforge.net/p/asymptote/code/HEAD/tree/trunk/asymptote/path.cc看到相关的源代码,包括查找立方根的代码。

于 2014-07-20T07:34:28.270 回答