Winkel im Dreieck mit zwei Unbekannten

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Lunatix

Betreff: Winkel im Dreieck mit zwei Unbekannten

BeitragDi, Aug 28, 2007 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Ich steh grad vor dem Problem, das ich Blitz(max) intern nen Winkel brauch. Ich habe alle x/y positionen der Punkte, könnte auch die Längen somit ausrechnen, habe aber in dem (Gedachten) dreick nur den 90° Winkel. Nun habe ich 2 Unbekannte, mindestens eine brauche ich...

Zur verdeutlichung: )um die schräge linie gehts, rest ist gedacht)

user posted image

Nunja... ich hab sowas seit ca. 3 jahren nichtmehr gemacht, in meinem Tabellen- sowie Formelbuch findt sich nix und nichtmal bei meiner Freundin im Tabellenbuch... weiss auch nicht genau wonach ich suchen sollt, im Internet auch nix gefunden... aber irgendwie ging das, das weiss ich.

Hat jemand ne Lösung oder Idee? Brauch keine rechnung oder so, nur die Formel oder erklärung dazu...

mfg Denis

[Edit] Darren, zu hülf! (https://www.blitzforum.de/foru...highlight=)
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

phil217

BeitragDi, Aug 28, 2007 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
wenn du alle x/y Positionen hast kannst du wie du ja gesagt hast die Längen der Seiten ausrechnen. Dann kannst du mit sin/cos/tan(weil rechtwinklig) die beiden fehlenden Winkel ausrechnen.
Es gilt immer sin(alpha) = gegenkathete/hyphotenuse
alpha bekommst du in blitz mit der funktion asin(sinuswert)
Wenn du ein nicht rechtwinkliges Dreieck hast kannst du immernoch z.B. den cosinussatz(a² = b² + c² - 2bc*cos(alpha) ) verwenden
MfG
Phil

mahe

BeitragMi, Aug 29, 2007 1:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Pos2Winkel:Double(x1:Int, y1:Int, x2:Int, y2:Int)
   Return ((ATan2((y2-y1),(x2-x1))+360) Mod 360)
EndFunction

Errechnet aus zwei Punkten einen Winkel.

Erklärung zu ATan2: http://www.blitzbase.de/befehle2d/atan2.htm
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,
 

Eternal_Pain

BeitragMi, Aug 29, 2007 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit der Funktion kann irgendwas nicht stimmen.... wenn ich einen Punkt (x=200 und y=200) habe und der mir einen Winkel zu Punkt (x=100 und y=100) geben soll, kann der unmoeglich 1 sein oO?

mahe

BeitragMi, Aug 29, 2007 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Pos2Winkel:Double(x1:Int, y1:Int, x2:Int, y2:Int)
   Return ((ATan2((y2-y1),(x2-x1))+360) Mod 360)
EndFunction


Print Pos2Winkel(200,200,100,100)


Ergibt bei mir 225.0 was durchaus stimmen könnte.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

Kernle 32DLL

BeitragMi, Aug 29, 2007 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ansonsten könnte man in Blitz 3D auch einfach die Funktionen VectorYaw und VectorPitch benutzen. mahe's Methode ist aber glaube ich besser, da VectorYaw und VectorPitch immer relativ zum 0 Punkt der Welt rechnen Wink

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

Lunatix

BeitragMi, Aug 29, 2007 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Atan2... ja jetzt fälltsd mir wieder ein, damals bei CS2D schon gesehen und einmal selbst verwendet für ein ähnliches spiel...

phil217: Das stimmt sogar, hab ich heute im Tabellenbuch Metal von unserm Werkstattleiter gefunden... in unsern stehts nicht drin (die neuen von Europa) :/

Ich werds mal versuchen, sollte jetzt klappen, danke an alle Smile
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

X-tra

BeitragFr, Sep 07, 2007 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
((ATan2((y2-y1),(x2-x1))+360) Mod 360)
was bedeutet +360) am ende der funktion?

Lunatix

BeitragFr, Sep 07, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
360°, da die Summe im Kreis = 360. (Im Dreieck z.b. 180)
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

X-tra

BeitragSa, Sep 08, 2007 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Was passiert wenn y2 und x2 größer als y1 und x1 sind?

Dann kommen ja negative Zahlen heraus.

Haut das dann trotzdem noch hin?

mahe

BeitragSa, Sep 08, 2007 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, es kommt ein Winkel zwischen 0 und 360 heraus. Völlig egal wo die beiden Punkte sind.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group