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

Koordinatenberechnung einer geometrische Figur

gSmarty

Geocacher
Ich suche ein Programm, mit dem ich die Koordinaten einer geometrische Figur (z.B. Fünfeck) berechnen kann. Möchte also zwei Punkte eingeben und das Programm soll mir die anderen 3 berechnen. gibt es irgendwo eine saubere Lösung für das Problem?
 

KaHeMu

Geocacher
Hi gSmarty,

da du das 5eck nur beispielhaft erwähnt hast, geht es dir sicher um eine flexible Lösung. Da fällt mir für Koordinaten auf der Erdoberfläche nur Mopsos von Koenigdickbauch ein.

Mit der darin enthaltenen Scriptsprache hast du fast alle Möglichkeiten, die du dir vorstellen kannst. Mopsos gibt es als Windows-und Windows Mobile-Variante.

Hier findest du genauso Hilfe wie hier (Heimat von Kdb).

Gruß
KaHeMu
 
OP
gSmarty

gSmarty

Geocacher
will ein Cache legen, wo ich derzeitig ein 5eck benötige, kann natürlich auch sein das ich irgendwann noch eine andere Form benötige, für den Anfang würde mir allerdings ein 5eck reichen!
 

KaHeMu

Geocacher
Na. schon weitergekommen?

Mit sowas könntest du in Mopsos rechnen:

Code:
program KreisProjektion; 

(*  Projiziert X Punkte von Kreismittelpunkt *)
 
 CONST X = 5; (* Anzahl der Kreispunkte *) 
 CONST Alpha = 15; (* Startrichtung *)
 
 var 
 Lat : array[0..X] of real; 
 Lon : array[0..X] of real; 
 Lat2, Lon2, LatM, LonM, Winkel, Abstand : real; 
 i : integer;
 
begin 
 Lat[0] := '49 26.500'; (* Zentrum *) 
 Lon[0] := '8 26.500'; 
 Winkel := 360/X; 
 Abstand := 500; 

 WptsClear; 
 writeln('0 ', wgs84(Lat[0], Lon[0]));
 WptsAdd(Lat[0],Lon[0]); 

 For i:=1 to X do begin 

  MakeProjection(Lat[0], Lon[0], Abstand, Alpha+Winkel*i, Lat2, Lon2); 

  Lat[i] := Lat2; (* Übergabe an Array *) 
  Lon[i] := Lon2; 

  WptsAdd(Lat[i],Lon[i]); 
  writeln(i,' ', wgs84(Lat[i], Lon[i]), ' ', Alpha+Winkel*i:8:4) 
 end; 
 
 if IsPocketPC then 
 begin 
  WptsSaveOzi('_Kreis_mps') 
 end 
 else 
 begin 
  WptsSaveGGPX('_Kreis_mps')
(*  WptsTransfereOzi *)
 end; 

 Writeln('fertig'); 
 Writeln; 
 Writeln('Mittelpunkt:');

 Circumcircle(Lat[3], Lon[3], Lat[1], Lon[1],Lat[2], Lon[2],LatM, LonM);
 writeln(wgs84(LatM, LonM));


end.

Ergebnisausgabe:
Code:
0 N 49° 26.5000 E 8° 26.5000
1 N 49° 26.5141 E 8° 26.9131  87.0000
2 N 49° 26.2482 E 8° 26.6482 159.0000
3 N 49° 26.3302 E 8° 26.1785 231.0000
4 N 49° 26.6469 E 8° 26.1531 303.0000
5 N 49° 26.7605 E 8° 26.6071 375.0000
fertig

Mittelpunkt:
N 49° 26.5002 E 8° 26.5000

Im Kurpfalzforum findest du nach Anmeldung ein entsprechendes Unterforum zum Austausch von und über Mopsos-Scripte.
 
OP
gSmarty

gSmarty

Geocacher
genau so was bräuchte ich, nur will ich nicht den Mittelpunkt angeben, sondern 2 Punkte des 5Eckes und daraus soll er mir die anderen 3 Punkte berechnen
 

KaHeMu

Geocacher
Hi gSmarty,

wenn du mittels Pythagoras aus dem Abstand deiner 2 Punkte = S mit R=S/(2*cos54grd) den Radius des 5ecks errechnest, kannst du den Mittelpunkt bestimmen und wieder obiges Beispielprogramm verwenden.

Die Strecken sollten dabei nicht zu groß (<500mtr) werden, sonst steigt der Fehler in der Natur, weil Pythagoras nur in der Ebene korrekt ist. Bei größeren Entfernungen müsstest du mit der Kugelgeometrie oder mit dem Ellipsoid rechnen. Da du dich jedoch aufs Cachen beziehst, sollte es mit Pythagoras hinreichend genau sein.

Gruß
Karl-Heinz
 

KaHeMu

Geocacher
Mir fällt gerade ein:

Wenn du von deinen beiden bekannten Punkten mit Mopsos über "Kreuzpeilung" den Schnittpunkt=Mittelpunkt errechnest, bist du genauer als mit Pythagoras, weil Mopsos immer mit dem Ellipsoid rechnet.
Mit "CalcProjection" kriegst du den Radius, ab da gehts wieder oben weiter!

Gruß
Karl-Heinz
 

KaHeMu

Geocacher
@klausundelke:
Wie errechnet man damit den Schnittpunkt einer Kreuzpeilung?
Code:
Aus Hilfe zu WolfLanguage:
Coordinate
bearing(coordinate1,coordinate2)
center() # get current center
center(coordinate)
cp() # get current GPS position
distance(coordinate1,coordinate2)
format(coordinate,fmt) 
where fmt="CW" or "UTM" or "DMS" or "DD"
goto(coordinate)
goto(coordinate,waypointname)
project(coordinate,angle,distance)

So geht das mit Mopsos:
Code:
 KreuzPeilung(Lat1, Lon1, Angle1, Lat2, Lon2, Angle2 :real, var Lat3, Lon3 :real);
Lat3, Lon3 enthält den Schnittpunkt!

Gruß
Karl-Heinz
 
OP
gSmarty

gSmarty

Geocacher
genau so meine ich das
Danke schon mal für die Hilfe
Ich wollte nur evtl. die Berechnung unter Excel (bzw. OpenOffice) durchführen
Erste Berechnung soll an Hand von 2 Punkten alle möglichen Mittelpunkte sein (die 2 Punkte müssen ja nicht genau neben einander liegen)
in der zweiten Berechnung wollte ich dann die anderen 3 Punkte berechnen auf Grundlage der unterschiedlichen Mittelpunkte
Nur da ist wieder dann das Problem mit der genauen Funktion die ich anwenden muss
 

1887

Geomaster
gSmarty schrieb:
genau so meine ich das
Danke schon mal für die Hilfe
Ich wollte nur evtl. die Berechnung unter Excel (bzw. OpenOffice) durchführen
Erste Berechnung soll an Hand von 2 Punkten alle möglichen Mittelpunkte sein (die 2 Punkte müssen ja nicht genau neben einander liegen)
in der zweiten Berechnung wollte ich dann die anderen 3 Punkte berechnen auf Grundlage der unterschiedlichen Mittelpunkte
Nur da ist wieder dann das Problem mit der genauen Funktion die ich anwenden muss

Moin,

wenn zwei Punkte bekannt sind und ein regelmäßiges Vieleck konstruiert werden soll, gibt es nicht alle möglichen Mittelpunkte, sondern genau zwei. Diese zwei kannst Du ohne Probleme mit dem GPS über eine Kreuzpeilung besitmmen. Damit ist auch der Radius bekannt und wenn es dann mit Excel weiter berechnet werden soll, kannst Du das mit dem Tool von Vater und Sohn machen...

Die unterschiedlichen Verfahren zur Berechnung weiterer Punkte haben den Nachteil, dass es bei größeren Entfernungen eine größere Streuung der Ergebnisse gibt - für einen Geocache eher Kontraproduktiv...

Grüße
1887
 

KaHeMu

Geocacher
gSmarty schrieb:
genau so meine ich das
Danke schon mal für die Hilfe
Ich wollte nur evtl. die Berechnung unter Excel (bzw. OpenOffice) durchführen
Erste Berechnung soll an Hand von 2 Punkten alle möglichen Mittelpunkte sein (die 2 Punkte müssen ja nicht genau neben einander liegen)
Das ist eigentlich nur eine Variation der beiden Winkel für die Kreuzpeilung.
in der zweiten Berechnung wollte ich dann die anderen 3 Punkte berechnen auf Grundlage der unterschiedlichen Mittelpunkte
Nur da ist wieder dann das Problem mit der genauen Funktion die ich anwenden muss
Dazu verwendest du wieder oben erwähntes Script.

Gruß
Karl-Heinz

PS: Ich gebe zu, Mopsos und seine Scriptsprache haben nicht gerade eine besonders steile Lernkurve, aber es lohnt, sich damit zu beschäftigen.
Die Excel-Tools von VaterundSohn verwenden ebenfalls, wie Mopsos, die Formeln für die Kugel- resp. Ellipsoidgeometrie, so dass sich evtl. Fehler im Meterbereich abspielen. Dasselbe gilt natürlich auch für den GPSr.
 
Oben