0

给定:
连接贝塞尔曲线的样条曲线。
A point

Desired:
找到最接近该点的样条曲线的一条贝塞尔曲线。

解决方案:
迭代查找每条贝塞尔曲线上的最近点,并选择整体最近点的曲线。

问题:
如果不需要曲线上的确切点,是否有更简单的方法来做到这一点?例如,一个操作员从它们的控制点比较两条贝塞尔曲线到给定点的距离?
我不需要知道到曲线 A、B、C 的距离……我“只”需要按曲线的相对距离对曲线进行排序。(--> 找到最近的曲线,而不是最近的点。)

谢谢!

4

1 回答 1

0

您可以找到点与曲线边界框之间的最小距离和最大距离。这两个距离应该是点和曲线之间实际距离的下限和上限。所以你有了

MinDist(P, Bbox(C1)) <= Dist(P,C1) <= MaxDist(P, Bbox(C1))
MinDist(P, Bbox(C2)) <= Dist(P,C2) <= MaxDist(P , Bbox(C2))

如果你还可以找到 MaxDist(P, Bbox(C1)) < MinDist(P, Bbox(C2)) 或 MaxDist(P, Bbox(C2)) < MinDist(P, Bbox(C1)),那么你可以得出结论曲线 C1 或 C2 更接近点 P。但是,如果您没有这些条件,那么找出下限/上限对您没有帮助,您需要计算点和曲线之间的实际距离。

于 2014-11-28T23:41:04.040 回答