【问题标题】:Finding difference of two plots in C#在 C# 中查找两个图的差异
【发布时间】:2012-04-06 16:02:50
【问题描述】:

我有一个激光扫描仪应用程序,我想在其中找到两个图之间的差异,一个是没有对象的参考图,另一个是视图中的对象。我正在绘制带有 x y 坐标的图。目前我已经绘制了图表并用不同的颜色填充它们,以便我可以清楚地查看减去的部分。但现在我只想显示差异区域...我认为找到曲线下的区域会解决问题。但我认为它只会给出数值而不是减去区域的确切位置。

所以,我在互联网上搜索了 C# 中的解决方案,我可以在情节本身中做到这一点。希望我说清楚了。 有人可以指导我进行搜索吗?我在这里给出我的 c# 代码..

// PointPairList holds the data for plotting, X and Y arrays (one can use other types of objects as well)

        PointPairList spl1 = new PointPairList(x1, y1);
        PointPairList spl2 = new PointPairList(x2, y2);
        PointPairList spl3 = new PointPairList(x, y);



// Add curves to myPane object
      LineItem myCurve1 = myPane.AddCurve("LIDAR Data Scanner-Measurement-Normal", spl1, Color.Blue, SymbolType.None);
      LineItem myCurve2 = myPane.AddCurve("LIDAR Data Scanner-Measurement-with object", spl2, Color.Red, SymbolType.None);
      LineItem myCurve3 = myPane.AddCurve("LIDAR Data Scanner-Measurement-Subtracted curve", spl3, Color.Green, SymbolType.None);

    //   myCurve1.Line.Width = 3.0F;
    //myCurve2.Line.Width = 3.0F;
    myCurve1.Line.Fill = new Fill(Color.White, Color.FromArgb(16, 155, 0, 0), 90F);
    myCurve2.Line.Fill = new Fill(Color.Black, Color.FromArgb(143, 55, 6, 0), 90F);

我只想显示图中的矩形白色部分...

【问题讨论】:

  • 当你只谈论 c# 时,为什么要把它标记为 c++ 和 c#?
  • @Aleks 如果可以在 c++ 中使用,我也可以在那里实现..
  • 你想得到什么样的曲线?像这样的减曲线? ars.sciencedirect.com/content/image/…
  • @DmitriyReznik 感谢您的建议。我现在在我的问题中添加了图表。蓝色曲线是参考曲线。除了对象位置之外,红色曲线完全重叠。

标签: c# c++ plot subtraction curves


【解决方案1】:

我不确定您看到的数据结构 - 但是,一般来说,如果您正在处理多边形(闭合曲线指定一组 x,y 点),那么您可以进行多边形裁剪以找出差异.见

Algorithm to Compute the Remaining Polygon After Subtraction
How to intersect two polygons?

如果您可以将您的两个图(即参考图和提供的图)表示为多边形,那么上述算法应该允许您计算差异。

【讨论】:

  • 我尝试了 GPC 算法。但它仅适用于整数。但我有双重价值观..
  • @lakshmikant,GPC 可能使用整数坐标,但变换坐标系并不难。如果您知道值的范围和精度,那么将它们转换为整数/从整数转换是直截了当的。例如,你的双打从 0 到 10,小数点后有 5 位,乘以 100000 应该给你整数值 - x,y 的乘数可以不同 - 将整数转换回双精度时使用相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 2019-07-27
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
相关资源
最近更新 更多