如何知道相邻点和相邻点之间的距离
本文关键字:距离 之间 何知道 | 更新日期: 2023-09-27 18:16:21
我是一个新手。我有一个面板,用来绘制一些点。现在我将点击面板中的任何地方,我需要找到最接近点击点的点。这是找到它的最好方法。谁能帮我一下?
@Yahia实际上我已经创建了一些点,看起来像
. . . .
. . . .
. . . .
现在我将在这些点之间点击,我需要找到最近的点,从我点击的地方和不同的颜色。
我使用的代码是PlotterMap = new Bitmap(this.pnlPlotterMap.Width, this.pnlPlotterMap.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
BufferGraphics = Graphics.FromImage(PlotterMap);
BufferGraphics.FillEllipse(brush, plcolplot.XPixel1, plcolplot.YPixel1,2,2);
数学方法是计算距离。
它仍然会比圆圈的暴力破解方法快得多
你可以用vector(从3.5开始就存在于。net中)结合LINQ:
Point mousePos = new Point();
List<Point> points = new List<Point>();
var closest = (from Point p in points
select new {
Vector = (mousePos - p),
Point = p }
).OrderBy(a => a.Vector.Length).FirstOrDefault();
if (closest != null)
{
double distance = closest.Vector.Length;
Point closesPoint = closest.Point;
}
在面板的单击事件中,选择已完成单击的点。从1开始创建半径增加的圆(不要画这个,只是在后面创建对象n代码),并尝试找出哪个定义的点与你的圆相交。
您可以计算点击点与其他点之间的距离,然后找到最短距离。如何计算距离?-使用勾股定理。下面是如何计算两个点之间的距离