MS Chart连接所有数据点而没有线交叉

时间:2017-08-27 20:29:50

标签: c# charts

我在MS图表中有数据点,我想用线条连接所有这些数据点,其中没有一条线相互交叉。每个数据点将连接到另外两个数据点。

情节应该看起来像一个闭环,非常重要的是没有任何线条交叉在另一个上面。

有没有简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

好吧,我猜错了:实际上并不是那么难,除非你想要的限制比你给的更多。这是一个应该工作的雷达波束方法:

  • 让我们从点数列表开始
  • 我们创建了一个List<Tuple<PointF, float, float>>
  • 然后我们找到最小和最大x和y值,并从中心点c
  • 接下来,我们通过计算每个点与中心c
  • 之间的角度和距离来填充每个Tuple的两个浮点数。
  • 最后我们按角度排序,然后按距离
  • 排序
  • 现在我们可以遍历列表并从我们添加到DataPoints的{​​{1}}中创建。{/ li>
  • 要关闭循环,我们会在结尾处再次添加第一个Series

这种连接没有任何交叉,但我相信一些结果看起来比手工制作的解决方案更糟糕。事实上,大多数例子看起来都像爆炸一样; - )

以下是100个随机点的示例。

enter image description here