У меня есть следующий код:Linq, чтобы найти пару точек с самой длинной длиной?
foreach (Tuple<Point, Point> pair in pointsCollection)
{
var points = new List<Point>()
{
pair.Value1,
pair.Value2
};
}
В этом Еогеаспе, я хотел бы быть в состоянии определить, какую пару точек имеют наиболее значительную длину между координатами для каждой точки внутри пары.
Итак, допустим, что точки состоят из следующих пар:
(1) var points = new List<Point>() { new Point(0,100), new Point(100,100) };
(2) var points = new List<Point>() { new Point(150,100), new Point(200,100) };
Поэтому у меня есть два набора пар, упомянутых выше. Оба они построят горизонтальную линию. Мне интересно узнать, какой лучший подход - найти пару точек с наибольшим расстоянием между ними, будь то вертикально или горизонтально. В двух приведенных выше примерах первая пара точек имеет разницу в 100 между координатой X, так что это будет точка с самой значительной разницей. Но если у меня есть набор пар точек, где некоторые точки будут строить вертикальную линию, некоторые точки будут строить горизонтальную линию, что было бы лучшим подходом для извлечения пары из множества точек, разница которых снова вертикально или горизонтально , является наибольшим среди всех точек в коллекции?
Спасибо!
Chris
Будет ли какой-либо из точек определить линию, которая не по вертикали или горизонтали? Например, есть {(0,0), (3, 4)} возможность? Если да, считаете ли вы, что это имеет «длину» 5 (потому что это евклидово расстояние) или 4 (потому что это большая разница по горизонтали и вертикали)? –
Да, извините, должен был упомянуть об этом, хороший вопрос. – Chris
В результате у меня будет набор точек, которые будут использоваться для построения линии между одной фигурой и другой фигурой. Линия может идти горизонтально, затем вертикально, а затем горизонтально, пока она не закончится в форме назначения. Каждая строка между фигурами имеет текст, такой как «Да» или «Нет», и я пытаюсь найти хороший подход к определению места размещения текста, поэтому я думал найти линию с наибольшим расстоянием, а затем добавьте текст в центр этой строки. – Chris