[英]How to find neighbor Points on Line/Polyline c#
如果您可以將網格適合int值,這是一個幼稚的解決方案。 它應該涵蓋線不像平方螺旋線那樣“增長”的情況。 切換為雙精度時,請注意可能的舍入問題。
var line = new List<Point>
{
new Point("A", 0, 0),
new Point("B", 1, 0),
new Point("C", 1, 1),
new Point("D", 3, 1),
new Point("E", 3, 2),
new Point("F", 4, 2)
};
var p = new Point("P",2,1);
Point first = null;
foreach (var point in line)
{
if (first != null)
{
if (p.X == first.X && p.X == point.X
&& (p.Y >= first.Y && p.Y <= point.Y
|| p.Y <= first.Y && p.Y >= point.Y))
{
PrintResult(first, p, point);
break;
}
if (p.Y == first.Y && p.Y == point.Y
&& (p.X >= first.X && p.X <= point.X
|| p.X <= first.X && p.X >= point.X))
{
PrintResult(first, p, point);
break;
}
}
first = point;
}
Console.ReadKey();
}
private static void PrintResult(Point first, Point p, Point second)
{
Console.WriteLine(first.Name);
Console.WriteLine(p.Name);
Console.WriteLine(second.Name);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.