• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Skript "Dreieckspunkte" für den Solver

hakki

Geonewbie
Hallo ich hab ein Skript erstellt, der verschiedene spezielle Punkte im Dreieck berechnen kann.
Die Punkte im einzelnen:
Inkreisschnittpunkt eines Dreiecks
Schwerpunkt eines Dreiecks
Umkreismittelpunkt eines Dreiecks
Orthozentrum (Höhenschnittpunkt) eines Dreiecks
Der Gergonnepunkt eines Dreiecks
Hier der Code (hoffe, dass dieser auch gut funktioniert):

Code:
##################################################################
A="N 50 45.212 E 6 28.327"
B="N 50 44.529 E 6 31.282"
C="N 50 45.697 E 6 30.219"
##################################################################
cls();deg()
Laengea=dist(B,C)
Laengeb=dist(A,C)
Laengec=dist(A,B)
"Laenge a ist "Laengea"m"
"Laenge b ist "Laengeb"m"
"Laenge c ist "Laengec"m"
""
WinkelvonLinieab=bearing(A,B)
WinkelvonLinieac=bearing(A,C)
WinkelvonLinieba=bearing(B,A)
WinkelvonLiniebc=bearing(B,C)
WinkelvonLiniecb=bearing(C,B)
WinkelvonLinieca=bearing(C,A)
"Der Winkel von A nach B ist "WinkelvonLinieab"°"
"Der Winkel von A nach C ist "WinkelvonLinieac"°"
"Der Winkel von B nach A ist "WinkelvonLinieba"°"
"Der Winkel von B nach C ist "WinkelvonLiniebc"°"
"Der Winkel von C nach B ist "WinkelvonLiniecb"°"
"Der Winkel von C nach A ist "WinkelvonLinieca"°"
""
alpha=(WinkelvonLinieab-WinkelvonLinieac)
beta=(WinkelvonLiniebc-WinkelvonLinieba)
gamma=(WinkelvonLinieca-WinkelvonLiniecb)
IF alpha<0 THEN alpha=alpha*(-1) ENDIF
IF alpha>180 THEN alpha=360-alpha ENDIF
IF beta<0 THEN beta=beta*(-1) ENDIF
IF beta>180 THEN beta=360-beta ENDIF
IF gamma<0 THEN gamma=gamma*(-1) ENDIF
IF gamma>180 THEN gamma=360-gamma ENDIF
"Der Winkel von Alpha ist "alpha"°"
"Der Winkel von Beta ist "beta"°"
"Der Winkel von Gamma ist "gamma"°"
""
$PositionaHalb=proj(B,bear(B,C),dist(B,C)/2)
LaengeaHalb=dist(B,$PositionaHalb)
"Linie a/2 ist "LaengeaHalb"m und der Mittelpunkt der Linie liegt bei "$PositionaHalb
$PositionbHalb=proj(A,bear(A,C),dist(A,C)/2)
LaengebHalb=dist(A,$PositionbHalb)
"Linie b/2 ist "LaengebHalb"m und der Mittelpunkt der Linie liegt bei "$PositionbHalb
$PositioncHalb=proj(A,bear(A,B),dist(A,B)/2)
LaengecHalb=dist(A,$PositioncHalb)
"Linie c/2 ist "LaengecHalb"m und der Mittelpunkt der Linie liegt bei "$PositioncHalb
""
U=Laengea+Laengeb+Laengec
"Der Umfang des Dreiecks ist "U"m"
s=U/2
"Der halbe Umfang s betraegt "s"m"
""
sminusa=(s-Laengea)
sminusb=(s-Laengeb)
sminusc=(s-Laengec)
FlaecheA=sqrt(s*sminusa*sminusb*sminusc)/1000
"Der Flaecheninhalt des Dreiecks betraegt "FlaecheA"qm"
RadiusInkreis=2*FlaecheA/U*1000
"Der Radius des Inkreises betraegt "RadiusInkreis"m"
RadiusUmkreismittelpunkt=Laengea/1000*Laengeb/1000*Laengec/1000/(4*FlaecheA)*1000000
"Der Radius des Umkreismittelpunktes betraegt "RadiusUmkreismittelpunkt"m"
""
alphaHalb=(WinkelvonLinieab+WinkelvonLinieac)/2
betaHalb=(WinkelvonLinieba+WinkelvonLiniebc)/2
gammaHalb=(WinkelvonLinieca+WinkelvonLiniecb)/2
"Alpha/2 betraegt "alphaHalb"°"
"Beta/2 betraegt "betaHalb"°"
"Gamma/2 betraegt "gammaHalb"°"
""
InkreisSchnittpunkt=cb(A,alphaHalb,B,betaHalb)
"--------------------------------------------------------------------------------------------"
"Der Inkreisschnittpunkt liegt bei "InkreisSchnittpunkt

$Schwerpunkt=cb($PositioncHalb,bear($PositioncHalb,C),$PositionaHalb,bear($PositionaHalb,A))
"Der Schwerpunkt liegt bei "$Schwerpunkt

Umkreismittelpunkt=cb($PositioncHalb,mod(WinkelvonLinieab+90,360),$PositionaHalb,mod(WinkelvonLiniebc+90,360))
"Der Umkreismittelpunkt liegt bei "Umkreismittelpunkt

$LotLinieab=cb(A,bear(A,B),C,mod(bear(A,B)+90,360))
$LotLiniebc=cb(B,bear(B,C),A,mod(bear(B,C)+90,360))
$Orthozentrum=cb($LotLinieab,mod(bear(A,B)+90,360),$LotLiniebc,mod(bear(B,C)+90,360))
"Der Orthozentrum liegt bei "$Orthozentrum

AnachCsminusa=project(A,WinkelvonLinieac,s-Laengea)
BnachAsminusb=project(B,WinkelvonLinieba,s-Laengeb)
WinkelAnachCsminusa=bear(AnachCsminusa,B)
WinkelBnachAsminusb=bear(BnachAsminusb,C)
GergonnePunkt=cb(AnachCsminusa,WinkelAnachCsminusa,BnachAsminusb,WinkelBnachAsminusb)
"Der GergonnePunkt liegt bei "GergonnePunkt

Viele Grüße
Hakki
 
Oben