7

水平点と垂直点を計算できますが、対角点を使用して距離を計算する方法がわかりません。誰かがこれで私を助けることができますか?

水平および垂直測定のコードは次のとおりです。

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

_startPoint が既に設定されていると仮定します。

代替テキスト

この画像では、対角点が明らかに間違っています。

4

4 に答える 4

18

ピタゴラスの定理を使う必要があります。

d = Math.Sqrt(Math.Pow(end.x - start.x, 2) + Math.Pow(end.y - start.y, 2))
于 2010-09-29T06:59:42.760 に答える
6

ユークリッド距離の式を探していると思います。

数学では、ユークリッド距離またはユークリッド計量は、定規で測定する 2 点間の「通常の」距離であり、ピタゴラスの公式によって与えられます。

于 2010-09-29T06:57:25.593 に答える
3

よく見てください: https://en.wikipedia.org/wiki/Pythagorean_theorem

于 2010-09-29T06:55:19.860 に答える