Найти начальную точку и конечную точку полилинии

#c# #linq #list

#c# #linq #Список

Вопрос:

У меня есть список точек, которые находятся на Polyline . Точки в списке расположены не по порядку. Как я могу найти начальную точку и конечную точку Polyline (желательно с использованием LINQ )

 public class Point
{    
    public double X;
    public double Y;
}

var PointsOnPolyline = new List<Point>
{
    new Point { X = 300, Y = 400 },
    new Point { X = 0, Y = 400 },
    new Point { X = 1200, Y = 500 },
    new Point { X = 700, Y = 400 }
};

FinalResult = {P(0,400), P(1200,500)}
  

Комментарии:

1. начальная точка всегда будет с x = 0 ??

2. Полилиния означает линию, проходящую через несколько точек? Тогда вы не можете знать… Вы можете провести непрямую линию через любую группу точек в любом порядке

Ответ №1:

Проблема, как указано, некорректна. «Полилиния»? Какая полилиния? В вашем примере существует 4 ! / 2 = 12 различных возможных полилиний.

Если вы предполагаете, что точки на полилинии имеют строго возрастающие значения X, то вы могли бы сделать следующее.

 var orderedPoints = PointsOnPolyline.OrderBy(p => p.X);
var firstPoint = orderedPoints.First();
var lastPoint = orderedPoints.Last();
  

Комментарии:

1. необязательно, чтобы начальная точка всегда была с x = 0

2. @EhsanSajjad Я не делаю такого предположения.

3. если это так, какое может быть возможное решение

4. Да, Xs увеличивается, я забыл включить его.