tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von sheel
  • 1 Beitrag von CPoly
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1415
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Hallo,

    kennt jemand die Formel, wie ich den Winkel alpha zwischen Koordinaten berechnen kann?

    Bsp:

    Ausgangskoordinate (x/y) A 1/2
    B 7/2
    C 8/6

    Ich suche nun den Winkel alpha, also den Winkel zwischen b und c.

    Vielen Dank!
     

  2. #2
    SE Tutorials.de Gastzugang
    also erstmal : lmgtfy
    zweitens : du willst den Winkel Alpha (abc) ... also den Winkel von A zu C um den Punkt B ... hast du selbst das in Mathe nicht mitbekommen ?
    drittens : kugg dir mal den sog. Einheitskreis an ...
    das ist ein Kreis mit nem Radius von 1 in dem Sinus , Kosinus und Tangenz ihre 4 festen werte im abstand von 90 Grad haben ... nämlich 1 , 0 , -1 und Unendlich
     

  3. #3
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.490
    Duckemai bedankt sich. 

  4. #4
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Ok. Habe es nun hinbekommen, dass er mir per Taschenrechner das Ergebnis auswirft, also den Winkel alpha. nun wollte ich mir den arccos per Java ausgeben lassen:

    ergWinkel = (int) Math.acos(skalarprodukt / (bVektorlaenge * cVektorlaenge));

    und habe dann lesen müssen, dass diese Berechnung in Java so nicht geht. Habe alle Vorschläge ausprobiert, aber keine führt zum richtigen Ergebnis. Kennt Ihr vielleicht die richtige Formel für Java?

    Hier meine Versuche mit falschen/unsinnigen Ergebnissen:

    // ergWinkel = (int) Math.acos(skalarprodukt / (bVektorlaenge * cVektorlaenge));

    // ergWinkel=(int)Math.acos((skalarprodukt / (bVektorlaenge * cVektorlaenge))*(180/3.14));

    // ergWinkel = (int) Math.acos (Math.toRadians((skalarprodukt / (bVektorlaenge * cVektorlaenge)) * 180 / Math.PI));

    // float degrees = (float) (Math.acos(skalarprodukt / (bVektorlaenge * cVektorlaenge)) * 180/Math.PI);
    // ergWinkel = (int) Math.cos(degrees * Math.PI/180);

    // float radiant = (float) Math.acos((skalarprodukt / (bVektorlaenge * cVektorlaenge)));
    // ergWinkel = (int) (Math.acos(radiant) * 180 / Math.PI);


    Vielen Dank
     

  5. #5
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.443
    Die drei Variablen sind nicht zufällig alle von einem ganzzahligen Typ? Dann haut das mit der Division ohne Cast nicht hin.

    Edit: Vielleicht hilft es dir auch das Ergebnis vor dem int-cast noch in http://download.oracle.com/javase/1....es%28double%29 zu stecken.
    Duckemai bedankt sich. 

  6. #6
    Avatar von Duckemai
    Duckemai Duckemai ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Beiträge
    31
    Alle 3 sind Fließkommazahlen.

    Aber Dein 2. Tipp war es:
    ergWinkel = (int) Math.toDegrees(Math.acos(skalarprodukt / (bVektorlaenge * cVektorlaenge)));

    Super!
    Vielen Dank
     

Ähnliche Themen

  1. Winkel vertauscht
    Von moorpheus3000 im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 23.04.08, 10:17
  2. Antworten: 2
    Letzter Beitrag: 17.07.05, 19:24
  3. Anordnung+Winkel
    Von Jan-Frederik Stieler im Forum 3D Studio Max
    Antworten: 3
    Letzter Beitrag: 24.03.04, 10:25
  4. Cos(winkel beim C!
    Von DeBullet im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 15.10.03, 17:08
  5. Rechter Winkel
    Von Frase im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 03.09.03, 16:39