![]() |
Länge zwischen zwei Punkten!
hey na?
Ich versuche ein Programm zu erstellen, wo mir das Programm die Länge zwischen 2 bestimmten Punkten sagen soll. Es ist ein Punkt festgelegt (Lösung) und einer soll vom Benutzer eingegeben werden. Der Abstand zwischen diesen Punkten soll dann ausgegeben werden. Ist das irgendwie programmierbar? :) Danke schon mal für eure Hilfe |
Re: Länge zwischen zwei Punkten!
Hallo,
wie weit bist du denn schon? was ist schon fertig und wo haperts? |
Re: Länge zwischen zwei Punkten!
Naja wir müssen jetzt so nen Projekt machen. Da sollen wir halt die Luftlinie zwischen zwei zb Städten dann ausgeben. Da ich aber Anfänger bin weiß ich jetzt nich wirklich wie ich das machen kann bzw. wie ich anfangen könnte. Ich mein die Weltkarte hab ich schon :oops:
lg Anja |
Re: Länge zwischen zwei Punkten!
Also das Programmieren ist total simple
Was du machen must ist die Sogenannte Norm berechnen. Also den Abstand zwischen 2 Punkten. 2 Punkte sind gegeben durch x1,y1 und x2,y2 Mittels Pytagoras Länge = Wurzel aus ( (x1-x2) im Quadrat + (y1-y2) im Quadrat ) und fertig. Das ganze Programmieren müstest du selbst können. |
Re: Länge zwischen zwei Punkten!
Ich werfe mal den guten alten Pythagoras in den Raum, der sollte Dir weiterhelfen.
[edit] Etwas zu spät :? [/edit] |
Re: Länge zwischen zwei Punkten!
das ganze könnte man mit dem Satz des Pythagoras machen. Die Punkta auf der Weltkarte hast du ja, du must nur noch den Maßstab in die Berechnung einfügen.
Nehmen wir mal an du hast die Punkte (0;0) und (10;20). Dann erhälst du bei einem Maßstab von 1 Pixel = 1m: a = 0 + 10 b = 0 + 20 c²= a² + b² = 100 + 400 = 500 c = sqrt(500) --> Luftlinie //edit: Grummel, da war wer schneller...^^ |
Re: Länge zwischen zwei Punkten!
hey ich danke euch!
Ich denk mal schon das ich das hinbekomm, und wenn nich kann ich ja immer nochmal fragen! :wink: bis später dann! :-D |
Re: Länge zwischen zwei Punkten!
ach noch gleich ne andere Frage. Wie funktionierten denn das, dass wenn wir auf einen bestimmten Punkt in der Karte klicken, dass dann genau da ein anderer Punkt erscheint?
Danke :wink: |
Re: Länge zwischen zwei Punkten!
Bim OnClick auf die Karte die Koord. abfragen und dann mit den Canvas-Funktionen färben (hoffentlich ist das richtig :oops: )
|
Re: Länge zwischen zwei Punkten!
Fast richtig.
Die Koordinaten sind dann auf den bildschirm bezogen. Nicht auf das Image/Paintbox/irgendwas. Mit der function ScreentoClient(punkt : Tpoint): Tpoint; rechnest du die Bildschirmkoordinate in eine Paintbox-/Image-koordinate um. Gruß snow |
Re: Länge zwischen zwei Punkten!
Die Karte wird wohl mit einem TImage oder ähnlichem eingebunden werden. Bei dem OnMouseDown Event werden die X- und Y-Koordinaten im Bezug auf die Kompo übergeben, da muss man nicht erst mit ScreenToClient rumfummeln.
|
Re: Länge zwischen zwei Punkten!
Aber wird mouseDown nich immer ausgefürt, wenn der mausbutton heruntergedrückt ist?
Gruß snow |
Re: Länge zwischen zwei Punkten!
Natürlich, dann kann man dort doch die Koordinaten in eine Variable setzen und diese abrufen, wenn sie benötigt werden.
|
Re: Länge zwischen zwei Punkten!
Es macht einen grossen Unterschied ob du die Entfernung zwischen zwei Punkten oder zwischen zwei Städten wissen willst.
Bei letzteren wird es komplizierter, da die Erde eine unregelmässige Kugel ist. Pythagoras hilft da dann nicht mehr wirklich weiter, weil es schwierig wird die Erdkrümmung mit einzurechnen. Für diese Probleme gibt es aber fertige Bibliotheken die du nutzen kannst. |
Re: Länge zwischen zwei Punkten!
Das Stichwort lautet "sphärische Trigonometrie"
Schau mal hier ![]() da findest du 'ne einfache Berechnung für die Kugeloberfläche. |
Re: Länge zwischen zwei Punkten!
Vorschlag:
Man könnte auch 2 Shapes auf die Karte platzieren und per Drag&Drop verschiebbar gestalten. Beim Verschieben eines Shapes wird die Entfernung aktualisiert ausgegeben... stahli |
Re: Länge zwischen zwei Punkten!
man kann aber davon ausgehen,dass die erde eine Kugel ist. Die abweichung beträgt glaub ich 50/40000.
wo liegt dann da das problem? Dei entfernung zwischen 2 Breiten/Längengraden beträgt glaub ich eine Seemeile(wir hatten damals nen komischen Erdkundelehrer, da ist nicht viel hängen geblieben außer der Sandwitchbauweise eines Vulkans :lol: ) Wenn du also die entfernung in Grad/Minute/Sekunde weisst, kannste des in km umrechnen. Gruß snow |
Re: Länge zwischen zwei Punkten!
@snow: Da hast du in Erdkunde wirklich nicht aufgepaßt. Eine Seemeile entspricht einer Bogenminute des Äquators (eigentlich eines Längengrads). Die Berechnung mittels der Weltkoordinaten funtioniert so, wie du es vorgeschlagen hast, natürlich nicht, denn an den Polen ist der Abstand der Längengrade = 0.
Wenn du dir die Koordinatenlinien einer Europakarte ansiehst, kannst du erkennen, dass die Längengrade nach Norden hin zusammenlaufen. |
Re: Länge zwischen zwei Punkten!
es sei denn man verwendet eine gestrechte karte....
like this. ![]() Gruß snow |
Re: Länge zwischen zwei Punkten!
Bild bitte in Anhang ... mein Monitor ist zu klein ;(
Zitat:
|
Re: Länge zwischen zwei Punkten!
Ja. Nennt sich quadratische (manchmal auch rechteckige) Plattkarte.
Hat aber den Nachteil, dass sie im allgemeinen nicht längentreu ist, was ja auch logisch ist, denn die Projektion einer Kugel auf eine Ebene ergibt immer Verzerrungen. In diesem Fall stimmen die Längen am Äquator und in Nord-Süd-Richtung. In Ost-West-Richtung nimmt die Ungenauigkeit jedoch zu den Polen hin zu. (Ihr seid echt naiv) |
Re: Länge zwischen zwei Punkten!
wie wärs mit.
wenn a die entfernung auf der karte ist, dann ist die reale entfernung real Zitat:
gruß snow vllt stimmt meine formel ja sogar xD! Edit:// wenn ich meinen Physikkenntnissen trauen darf, dann müsste man bei einer ganz genauen rechnung auch noch die allgemeine Relativitätstheorie mit einbenziehen. Demnach ist die gemessene strecke in wirklichkeit durch den verkrümmten raum noch mal ein stückchen länger. Allerdings sollte das auf der Erde kaum auswirklungen haben. |
Re: Länge zwischen zwei Punkten!
Offensichtlich auch falsch denn
arcsin(a/2/r)=arcsin(a/d) (d=Durchmesser=2*6371km=12742km) gilt nicht für Entfernungen auf der Kugeloberfläche. Die maximale Entfernung a kann nämlich bis zu ca. 20000km betragen. Damit würde a/d größer als 1 (eins) werden und der Arcsin ist für Werte größer als eins nicht definiert. Offensichtlich, oder? |
Re: Länge zwischen zwei Punkten!
Moin, Moin,
ich verfolge die Diskussion mit einem gewissen Schmunzeln. Ich kann mir nicht vorstellen das die "Maus" dem Ganzen als Anfängerin noch einen praktischen Nutzen abgewinnen kann. Bezeichnenderweise hört man ja auch kein "Mäusegepiepse" mehr... Gruß Ralph |
Re: Länge zwischen zwei Punkten!
Herzlich Willkommen in der Dp :dp: :)
(Falls es noch keiner getan hat :) ) |
Re: Länge zwischen zwei Punkten!
Zitat:
Die erdkoordinaten sind halt nicht die dollsten :lol: . Es gibt bestimmt eine umwandlungsfunction für erdkoord nach GPS-kord. gruß snow |
Re: Länge zwischen zwei Punkten!
Naja das kein Mäusegepipser kam lag daran, dass mein rechner daheim sehr langsam ist und ich momentan auch anderen Stress in der Schule hab wegen Seminarfach(falls jemand damit was anfangen kann). Aber ich denk mal nich das wir das so kompliziert machen müssen von wegen Erdkrümmung und so nen gackel?!
Also meine Karte ist http://www.primap.com/Karten-Weltkarte-2000.jpg[/img] Danke schön! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz