C# 连接所有数据点的MS图表,无交叉线

C# 连接所有数据点的MS图表,无交叉线,c#,charts,C#,Charts,我在MS图表中有数据点,我想用线连接所有这些数据点,其中没有一条线相互交叉。每个数据点将连接到其他2个数据点 绘图应该看起来像一个闭合的循环,非常重要的是,不会有线在另一条线上交叉 有没有一个简单的方法可以做到这一点呢?好吧,我说错了:其实没那么难,除非你想要的限制比你给的更多。这里有一个雷达波束方法应该可以工作: 让我们从一系列要点开始 我们从中创建一个列表 然后我们找到最小值和最大值x和y,并从中找到中心点c 接下来,我们通过计算每个点与中心之间的角度和距离来填充每个元组的两个浮点数c 最

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

绘图应该看起来像一个闭合的循环,非常重要的是,不会有线在另一条线上交叉


有没有一个简单的方法可以做到这一点呢?

好吧,我说错了:其实没那么难,除非你想要的限制比你给的更多。这里有一个雷达波束方法应该可以工作:

  • 让我们从一系列要点开始
  • 我们从中创建一个
    列表
  • 然后我们找到最小值和最大值x和y,并从中找到中心点
    c
  • 接下来,我们通过计算每个点与中心之间的角度和距离来填充每个元组的两个浮点数
    c
  • 最后我们先按角度排序,然后按距离排序
  • 现在,我们可以遍历列表并从中创建
    数据点
    ,然后添加到
    系列
  • 为了结束循环,我们在末尾再次添加第一个
    数据点
这种连接没有任何交叉点,但我相信某些结果会比手工制作的解决方案更难看。事实上,大多数示例看起来都像爆炸;-)

奥托:这些线条是如何在混乱中添加一个可见的结构的,这不是很了不起吗

下面是一个具有100个随机点的示例


我不知道您不清楚哪一部分,请告诉我。如果绘图有3个点,它应该成为一个三角形。如果它有4个点,应该变成一个四边形。5分应该变成五角大楼。。等等每个点将仅连接到其他2个点。所有连接线都不得交叉。编辑:无论输入数据点的顺序如何,都必须进行此连接编辑2:我今天编辑了前面的问题,这就是措辞相似的原因。然后我看到它是关闭的,所以我打开了这个。当然,3或4分的例子看起来很简单,但是10或100分呢?另外:顺序始终决定连接。这就是折线图的工作原理。但再次强调:只有了解这些要点,这才是可行的!它们真的总是凹的吗?10x10网格或点怎么样?显而易见?当然不是……从来没有说过它很容易实现,否则我就不会问了。你不必对一个新程序员如此粗鲁地试图找到答案。我的朋友,这不是故意粗鲁的。但事实上,你问过一个“简单的方法”。如果你愿意,我会发布一个不那么简单的方法。如果你愿意花时间帮助我,我会非常感激,谢谢!非常感谢你!我将尝试以您描述的方式实现它!您还可以分享您在本例中使用的代码吗?嗯,大多数任务实际上都是使用linq的一行程序,例如
float mix=points.Min(x=>x.x)。你自己试一试会更有启发性;如果你明天遇到问题,我会帮你的。如有必要,展开问题。我用过。整个演示程序有100行,包括white spacem使用子句和设置一些图表属性。再次感谢,我现在将尝试并让您知道!非常酷+1。仅仅发布一个解释,而不是代码本身是一个匪徒的举动,虽然…:O)像一个魅力工程!我已经在我的代码中实现了,这正是我想要的!谢谢:)