正如你所看到的,我有一个带有两个系列的winform图表(DevExpress Chart)。
每个系列都有自己的观点
我想要的是找到这两个系列的重叠点(图中的绿色圆圈指向)。
例如(第一个重叠点为3.4,第二个重叠点为7.3) 谢谢。
答案 0 :(得分:5)
如果您可以直接访问Series
集合,则可以:
var intersection = Series[0].Points.Intersect(Series[1].Points);
如果您在此过程中创建离散的Point
对象,则可能还必须定义匹配行为。
答案 1 :(得分:0)
据我所知,你案例中的每一个系列都只是一系列的分数。您所需要的只是找到每个集合的线段之间的交集。我建议用于此目的Bentley-Ottmann算法,它允许以(N log N)方式找到答案(N是来自两个系列的线段的计数)。不幸的是我不知道c#中是否有实现(如果你不能找到c#解决方案,你可以随时使用c ++实现)
如果你总是有两个系列,由两个不同的函数定义,你可以用O(N)方式优化算法(使用"合并"逻辑)