【问题标题】:Intersection of two Bézier curves (or two curves and a line): code?两条贝塞尔曲线(或两条曲线和一条线)的交点:代码?
【发布时间】:2014-07-19 19:58:55
【问题描述】:

Checking if two cubic Bézier curves intersect 提供了指向http://cagd.cs.byu.edu/~557/text/ch7.pdf 的链接.. 第一遍听起来可读.. 但它不是代码。

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

【问题讨论】:

标签: javascript math geometry bezier curves


【解决方案1】:

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

类似的问题Checking if two cubic Bézier curves intersect 有一些很好的答案。特别是第一个答案提到了asymptote library,它有所有这些的代码。您可以在http://sourceforge.net/p/asymptote/code/HEAD/tree/trunk/asymptote/path.cc 看到相关的源代码,包括求三次方根的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多