Seite 1 von 1
Länge einer Strecke zwischen 2 Punkten berechnen.
Verfasst: 06.08.2010 15:41
von NathanielBlack
Diese Funktion soll euch helfen, wenn ihr den Abstand zwischen zwei Punkten (x,y) berechnen wollt. Jeder Punkt braucht eine X und eine Y Koordinate.
Doch schaut es euch einfach an.
Code: Alles auswählen
Procedure.d Entfernung(x1,y1,x2,y2)
Protected entfernung.d
a.d = x1-x2
b.d = y1-y2
entfernung.d = Sqr(a*a+b*b)
ProcedureReturn entfernung
EndProcedure
Und hier noch ein Beispiel:
Ich hoffe das kann euch helfen, falls benötigt:)
Mit freundlichen Grüßen,
NathanielBlack
Re: Länge einer Strecke zwischen 2 Punkten berechnen.
Verfasst: 06.08.2010 15:58
von Jilocasin
Das steht bereits recht lange in der PB-Hilfe, soweit ich weiß. Auch wenn der Code dort wegen der Potenzschreibweise nicht 1:1 in PB funktioniert.
Wenn schon, dann aber bitte:
Code: Alles auswählen
Procedure.d Entfernung(x1.d, y1.d, x2.d, y2.d)
ProcedureReturn Sqr((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2))
EndProcedure
Oder als Macro (wesentlich schneller als Procedureaufruf):
Code: Alles auswählen
Macro Entfernung(x1, y1, x2, y2)
Sqr((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2))
EndMacro
Ist bei der Verwendung von Doubles aber nur auf 64bit Systemen schneller. Auf 32bit sollte man bei dieser gekürzten Schreibweise für bessere Performance entweder Floats nutzen, oder bei Doubles den Zwischenweg über deine zwei Variablen a und b nehmen. Das ist dann sogar tatsächlich schneller.

Re: Länge einer Strecke zwischen 2 Punkten berechnen.
Verfasst: 06.08.2010 16:02
von STARGÅTE
*Kopfkratz*
PureBasicHilfe -> Zusätzliche Informationen ->
Mathematische Formeln -> Abstand zwischen zwei Punkten
Wenn du also schon eine Fertige prozedur anbietest, benutze bitte auch
Protected für deine Variablen, sonst kommts zu Fehlern, falls jamand "entfernung" gereits als Gobal definiert hat.
Re: Länge einer Strecke zwischen 2 Punkten berechnen.
Verfasst: 06.08.2010 19:32
von Nino
Das steht bereits recht lange in der PB-Hilfe, soweit ich weiß.
Das steht auch schon
ziemlich lange in den Aufzeichnungen des Pythagoras.
Wenn du also schon eine Fertige prozedur anbietest, benutze bitte auch
Protected für deine Variablen, sonst kommts zu Fehlern, falls jamand "entfernung" gereits als Gobal definiert hat.
Das wollte ich auch gerade schreiben. Gerade bei so kleinem Code ist es wohl nicht zu viel erwartet, dass er auch bei Verwendung von
funktioniert.
Grüße, Nino
Re: Länge einer Strecke zwischen 2 Punkten berechnen.
Verfasst: 06.08.2010 19:48
von Jilocasin
Nino hat geschrieben:Das steht auch schon ziemlich lange in den Aufzeichnungen des Pythagoras.
Dann müsste man aber zu jeder PB-Lizenz auch einige Kilo Keilschrifttafeln ausliefern, weil der hats nämlich eventuell von den Babyloniern geklaut
