Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
看两个屏幕截图,数据以双精度形式存储在 2D C 数组中。
第一个是我的原始数据,第二个是我想要的。所以我需要删除带有红色圆圈的点。我的第一次尝试是将每个点的 y 值与前一个点和下一个点的 y 值进行比较。如果它低于两者,则将其删除。
但是,这也会删除不应该删除的带有绿色圆圈的点。
关于仅删除带有红色圆圈的点的算法的任何建议?我不能使用阈值,因为也会有像绿色圆圈这样的点更接近 x 轴。
怎么样:通过找到绿点(最高倾角),然后再通过并移除所有小于该值的倾角?
我找到了另一种方法。
我没有在生成它们之后过滤所有值,而是在生成点期间过滤它们。例如,我计算它所属曲线的特定 x 值的 y 值,但也计算它的两条相邻曲线的 y 值。然后我检查该点是否位于相邻曲线之一的下方或上方,并在此基础上将它们添加到我的曲线中。
仍在稍微调整它,但它似乎比我最初想的更容易和更快。