Wie erhält man die Himmelsrichtung der Maus aus den Mauskoordinaten?

Ist es möglich, die Mausrichtung (links, rechts, oben, unten) basierend auf der letzten Position und der aktuellen Position der Maus zu bestimmen? Ich habe den Code geschrieben, um den Winkel zwischen zwei Vektoren zu berechnen, bin mir aber nicht sicher, ob er richtig ist.

Kann mir jemand bitte die richtige Richtung zeigen?

    public enum Direction
    {
        Left = 0,
        Right = 1,
        Down = 2,
        Up = 3
    }

    private int lastX;
    private int lastY;
    private Direction direction;

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        lastX = e.X;
        lastY = e.Y;
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        double angle = GetAngleBetweenVectors(lastX, lastY, e.X, e.Y);
        System.Diagnostics.Debug.WriteLine(angle.ToString());
        //The angle returns a range of values from -value 0 +value
        //How to get the direction from the angle?
        //if (angle > ??)
        //    direction = Direction.Left;
    }

    private double GetAngleBetweenVectors(double Ax, double Ay, double Bx, double By)
    {
        double theta = Math.Atan2(Ay, Ax) - Math.Atan2(By, Bx);
        return Math.Round(theta * 180 / Math.PI);
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage