Нахождение разницы двух участков в C # - PullRequest
0 голосов
/ 22 марта 2012

У меня есть приложение для лазерного сканера, в котором я хочу найти разницу между двумя графиками, одним из которых является эталонный график без объекта, а другой - с объектом в поле зрения. Я строю график с координатами xy.В настоящее время я построил графики и залил их разными цветами, чтобы я мог четко видеть вычтенную часть.Но теперь я хочу, чтобы отображалась только область различия ... Я думал, что поиск области под кривой решит проблему. Но я думаю, что она даст только числовое значение, а не точное положение вычитаемой области.

Итак, я искал в интернете решения в 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);

Я хочу отобразить только прямоугольную белую часть на рисунке ...

enter image description here

1 Ответ

0 голосов
/ 22 марта 2012

Я не уверен насчет структур данных, которые вы видите - однако, вообще говоря, если вы имеете дело с полигонами (замкнутые кривые задаются набором точек x, y), то вы можете выполнить обрезку полигонов, чтобы найти разницу , Смотри

Алгоритм вычисления оставшегося многоугольника после вычитания
Как пересечь два многоугольника?

Если вы можете представить свои два графика, то есть эталонный график и предоставленный график, как многоугольник, то приведенный выше алгоритм должен позволить вам вычислить разницу.

...