Robs Waypoint Funktion

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Gast

Betreff: Robs Waypoint Funktion

BeitragDo, Jun 09, 2005 10:44
Antworten mit Zitat
Hi!

Bin zur Zeit dabei Rob's (Robsite) Waypoint-Prog
auseinanderzunehmen!
Allerdings is mir eines nicht ganz klar!
Hab bevor ich das Prog gesehen habe selbt versucht
eins zu schreiben und bin doch recht weit (theoretisch :$)
gekommen, aber den Codeteil versteh ich nicht!

BlitzBasic: [AUSKLAPPEN]

Function winkel_ausrechnen#(x1#,y1#,x2#,y2#)
xhypo# = x2# - x1#
yhypo# = y2# - y1#

; Sqr = Wurzel
abstand# = Abs(Sqr((xhypo# ^ 2) + (yhypo# ^2)))

winkel# = Abs(ACos(xhypo#/abstand#))

If Sgn(xhypo#) = -1 And Sgn(yhypo#) = -1 Then winkel# = 180 + (180 - winkel#)
If Sgn(xhypo#) = 1 And Sgn(yhypo#) = -1 Then winkel# = 270 + (90 - winkel#)

Return winkel#
End Function


Mit gehts eigentlich um die Berechnung des Winkels! Ich hab versucht
die Rechenschritte zu verstehen aber ich bekomme bei...
BlitzBasic: [AUSKLAPPEN]

winkel# = Abs(ACos(xhypo#/abstand#))


...immer 90° raus! Hat das nen Sinn oder bin ich zu doof zum
rechnen? Für ne Erklärung wär ich sehr dankbar!

MFG DamienX
 

hitokiri

BeitragDo, Jun 09, 2005 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ohne mir jetzt den code genauer angesehen zu haben kann ich dir sagen dass die berechnung in der klammer immer 0 ergibt da arccosinus von 0 = 90° ist
 

Gast

BeitragDo, Jun 09, 2005 11:08
Antworten mit Zitat
OK das hab ich jetz zwar verstanden aber...
was soll das? Kann es sein das er damit den rechten Winkel
gegenüber dem Abstand (*sorry ich kanns nich besser erklären -stellt euch
zwei Punkte vor und rechnet aus wie weit sie voneinander entfernt sind*)
ausrechnet? Ahhhhhh. Ich komme einfach nicht drauf!
 

hitokiri

BeitragDo, Jun 09, 2005 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
well, die einzige möglichkeit die ich sehe wäre, das x1-x2 irgendwie = 0 ist. damit wäre die division in der klammer immer gleich 0 und somit 90°, bei division durch 0 würde er mit nem error abkacken.
also schlussfolgere ich dass x1 und x2 identisch sind

Alfadur

BeitragDo, Jun 09, 2005 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
habs auch mal probiert, aber hundertprozentig funktierts nichts ... winkel bis 360 grad ausrechnen funktioniert nicht...

wenn y1=y2, kommt bei x1<x2 und x1>x2 immer 0 grad raus ... dasselbe in grün umgekehrt, nur das dann 90 grad rauskommt. aber die funktion spuckt auch andere werte aus... aber eben nicht bis 360 grad...

wenn du winkel ausrechnen willst, nimm doch einfach die bb funktion atan2 ... die liefert dir die winkel die du haben willst ... schätze ich mal ... außer du brauchst garkeine 360 grad winkel ...
A Cray is the only computer that runs an endless loop in less than four hours.
 

Gast

BeitragDo, Jun 09, 2005 13:23
Antworten mit Zitat
Danke das hilft mir weiter!
Aber warum hat es Rob nicht gleich so gemacht?
Naja.. Atan2 is auf jeden Fall Perfekt!

Mfg DamienX

Jan_

Ehemaliger Admin

BeitragDo, Jun 09, 2005 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
weil das da noch nicht da war.
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group