【问题标题】:Given two curves(both formed of certain points),firgure out point count of one curve over another给定两条曲线(均由某些点组成),计算一条曲线相对于另一条曲线的点数
【发布时间】:2023-12-11 18:12:01
【问题描述】:

如图所示,两条曲线都是样条线,点数有限。我想弄清楚绿点的数量。有什么想法吗?

【问题讨论】:

    标签: visual-c++ point curve


    【解决方案1】:

    我假设黑色曲线是 x 单调(否则“一个高于另一个”术语可能会模棱两可)。

    一种简单的方法是将黑色曲线视为一条折线,并为红色曲线上的每个点p 找到折线上具有相同 x 坐标的点 q。然后绿点是那些p 的y 坐标大于它们对应的q 的点。

    找到与给定p 对应的点q 相当于遍历折线的段并识别具有一个端点具有较小x 坐标而另一个端点具有较大的线段。一旦你有了这样一个片段,q 的 y 值就只是一个线性插值。

    由于折线是x单调的,所以点的x坐标是排序的。因此,使用对数二分搜索可以有效地完成对相应段的搜索。

    【讨论】:

      最近更新 更多