gpt4 book ai didi

c# - 如何从另一个点知道相邻点

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:25 25 4
gpt4 key购买 nike

我是图形方面的新手。我有一个面板,我用它来绘制一些点。现在我将单击面板中的任意位置,我需要找到最接近单击点的点。这是找到它的最佳方法。有人可以帮助我吗。

@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);

最佳答案

数学方法是计算距离。

它仍然比做圆圈的蛮力方法快得多

您可以结合 LINQ 使用向量(从 3.5 开始存在于 .net 中):

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;
}

关于c# - 如何从另一个点知道相邻点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com