如何找到两点/像素之间的距离?

时间:2013-12-28 14:35:07

标签: c# geometry distance

我有这个方法:

private static List<Point> ExtendPoints(Point pt1, Point pt2)
{
    List<Point> ExtendedPoints = new List<Point>();
    decimal i = (Math.Sqrt(Math.Pow(Math.Abs(pt1.X - pt2.X), 2) + Math.Pow(Math.Abs(pt1.Y - pt2.Y), 2) + Math.Pow(Math.Abs(z1 - z2), 2)));

    return ExtendedPoints;
}

我需要找到两点pt1和pt2之间的精确x和y坐标。 结果应该是例如:12,13,这个坐标恰好位于两点之间的中间位置。

我现在使用小数和数学计算的方式不正确。

2 个答案:

答案 0 :(得分:5)

只需添加组件的值并除以2:

private static Point MidPoint(Point pt1, Point pt2)
{
    var midX = (pt1.X + pt2.X) / 2;
    var midY = (pt1.Y + pt2.Y) / 2;
    return new Point(midX, midY);
}

请注意,不确定您正在使用哪个Point课程。如果是System.Drawing.Point,则可能会出现整数截断问题。

另外,我不确定你要对List<Point> ExtendedPoints做什么,据我所知,两点之间只有1个中点。我也不确定你对z1z2做了什么。如果您使用3维点,则可以扩展我的答案并轻松添加第三维。

答案 1 :(得分:2)

为什么不呢

double dist = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));