Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#17

Re: Winkel zwischen zwei Punkten?!

  Alt 3. Sep 2009, 19:05
Möööp

Der Tangens interessiert gar nicht, es wird einmal der arkustangens berechnet und dann ist das nur noch ein Winkel, und der geht schon einmal ganz um den Kreis - also im Intervall 0..2PI oder 0..360°

Also ich weis nicht, was du machst, aber mein Testcode geht:
Code:
private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            label5.Text = string.Format("X: {0}\t Y: {1}", e.X, e.Y);

            var x = e.X - 150;
            var y = e.Y - 150;

            var Winkel = Math.Atan2(y, x);

            label1.Text = (Winkel * 180 / Math.PI).ToString() + " °";

            Winkel = Winkel + (2 * Math.PI / 16);

            label2.Text = (Winkel * 180 / Math.PI).ToString() + " °";

            if (Winkel > 2 * Math.PI)
                Winkel = Winkel - 2 * Math.PI;
            if (Winkel < 0)
                Winkel = Winkel + 2 * Math.PI;

            label3.Text = (Winkel * 180 / Math.PI).ToString() + " °";

            var Linie = Math.Truncate(Winkel * 8 / (2 * Math.PI));

            label4.Text = Linie.ToString();
        }
Vergisst du vll. vorher die Koordinaten des Ursprungs abzuziehen?
  Mit Zitat antworten Zitat