如何测量对角线距离点?

Rye*_*Rye 7 c# gdi measurement distance winforms

我可以计算水平和垂直点,但我无法弄清楚如何使用对角点计算距离.有人可以帮我弄这个吗.

这是我的水平和垂直测量的代码:

private float ComputeDistance(float point1, float point2) 
{
        float sol1 = point1 - point2;
        float sol2 = (float)Math.Abs(Math.Sqrt(sol1 * sol1));

        return sol2;
}

protected override void OnMouseMove(MouseEventArgs e)
    {

        _endPoint.X = e.X;
        _endPoint.Y = e.Y;

        if (ComputeDistance(_startPoint.X, _endPoint.X) <= 10)
        {
            str = ComputeDistance(_startPoint.Y, _endPoint.Y).ToString();
        }
        else
        {
            if (ComputeDistance(_startPoint.Y, _endPoint.Y) <= 10)
            {
                str = ComputeDistance(_startPoint.X, _endPoint.X).ToString();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

假设已经设置了_startPoint.

替代文字

在这张图片中,对角点显然是错误的.

And*_*per 18

你需要使用毕达哥拉斯定理.

d = Math.Sqrt(Math.Pow(end.x - start.x, 2) + Math.Pow(end.y - start.y, 2))
Run Code Online (Sandbox Code Playgroud)

  • +1使用了这么多它应该是数学库恕我直言的一部分. (5认同)

Gre*_*ill 6

我想你正在寻找欧几里德距离公式.

在数学中,欧几里得距离或欧几里德度量是人们用尺子测量的两点之间的"普通"距离,由毕达哥拉斯公式给出.