相关疑难解决方法(0)

检查两条立方贝塞尔曲线是否相交

对于个人项目,我需要找出两条立方Bézier曲线是否相交.我不需要知道在哪里:我只需要知道他们是否这样做.但是,我需要快速完成.

我一直在清理这个地方,我找到了几个资源.大多数情况下,这里的问题有一个很有希望的答案.

所以在我想出什么是西尔维斯特矩阵之后,什么是决定因素,什么是结果以及为什么它有用,我想我认为解决方案是如何工作的.然而,现实不同,它不能很好地工作.


到处乱混

我用我的图形计算器绘制了两个相交的Bézier样条(我们称之为B 0和B 1).它们的坐标如下(P 0,P 1,P 2,P 3):

(1, 1) (2, 4) (3, 4) (4, 3)
(3, 5) (3, 6) (0, 1) (3, 1)
Run Code Online (Sandbox Code Playgroud)

结果如下,B 0是"水平"曲线而B 1是另一个:

相交的两条三次Bézier曲线

根据上述问题的最高投票答案的指示,我将B 0减去B 1.根据我的计算器,它给我留下了两个方程式(X轴和Y轴):

x = 9t^3 - 9t^2 - 3t + 2
y = 9t^3 - 9t^2 - 6t + 4
Run Code Online (Sandbox Code Playgroud)

西尔维斯特矩阵

从那以后我构建了以下的西尔维斯特矩阵:

9  -9  -3   2   0   0
0 …
Run Code Online (Sandbox Code Playgroud)

c++ bezier intersection

32
推荐指数
2
解决办法
1万
查看次数

标签 统计

bezier ×1

c++ ×1

intersection ×1