在devexpress图表中找到两个系列的重叠点

时间:2017-03-14 16:55:00

标签: c# winforms charts devexpress

正如你所看到的,我有一个带有两个系列的winform图表(DevExpress Chart)。 enter image description here
每个系列都有自己的观点 我想要的是找到这两个系列的重叠点(图中的绿色圆圈指向)。

例如(第一个重叠点为3.4,第二个重叠点为7.3) 谢谢。

2 个答案:

答案 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)方式优化算法(使用"合并"逻辑)