0

我正在制作一个地图程序,我有轮廓跟踪的粗略轮廓,现在我想用贝塞尔曲线平滑这些轮廓。我不知道如何使终点顺利。你知道,我必须混合起点和终点才能有相同的切线。我发现了几种算法,但都没有解决这个问题。我知道这可以通过差分解决,但我不喜欢那件事。所以我希望有人能给我关键部分一个明显的代码演示。

4

1 回答 1

0

我不了解您的应用程序,但我将回答如何匹配两条贝塞尔曲线:如果您有两条带有控制点的贝塞尔曲线 (A1,A2,..,AN-1,AN) 和 (B1,B2,. .,BN-1,BN) 并且想要匹配 A 的结尾和 B 的开头,首先您必须确保 AN=B1(例如,将两者都设置为 (AN+B1)/2)。

为了使其切线连续 AN-1,(AN/B1),B2 必须在一条线上。线的方向可以通过平均 A 的最后一段和 B 的第一段的方向来找到:d = ((AN - AN-1) + (B2 - AN))/2。

在 2D 中:通过分别找到线 (AN,d) 与线 (AN-2,AN-1) 和 (B2,B3) 的交点来重新定位 AN-1 和 B2。对于 3D,您可能需要将线与由 (B2,B3) 构造的平面和通过计算 (B2-B3) 和 d 的叉积找到的第三点相交。

于 2012-11-10T10:53:44.650 回答