Geometrie - kartesische Koordinaten - Schnittpunkt der Linie ?

  • Ist hier einer, der in Sachen Geometrie fit ist? Ich war immer sehr gut in Mathe, aber jetzt gerade fühle ich mich wie ein Hilfsschüler...

    Folgendes: Ich habe hier 4 kartesische Koordinaten (eigentlich wesentlich mehr, aber damit es erst mal einfach bleibt). Also 4 Punkte. Jeweils zwei dieser Punkte liegen auf einer "Geraden". Ergibt also zwei Geraden, die irgendwo verlaufen und jeweils zwei Punkte drauf liegen. Was ich nun vorerst mal brauche ist der Schnittpunkt der Geraden. Und zwar den, der am nächsten liegt.

    Allerdings, und da scheitere ich die ganzen Tage. Es geht hier nicht um ein lineares Koordinatensystem, sondern um Positionsangaben auf einer Kugel (Erde). Es muss also der Erdradius als auch die variable Breite des Längengrads beachtet werden. Normale Winkelfunktionen oder Geradengleichungen funktionieren hier nicht.

    Was ich schon habe ist der Winkel der beiden Punkte auf einer Geraden, sowohl vorwärts als auch rückwärts.

    Nur wie komme ich denn nun auf den Schnittpunkt?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • In Mathe war ich eigentlich auch immer recht gut, aber bei dieser Problemstellung stehe ich auch wie ein Ochse vorm Berg.
    Und wenn ich etwas im Web recherchiere, finde ich als ersten ggf. brauchbaren Ansatzpunkt auch nur den Link, den Chris bereits gepostet hat.

  • Vielleicht kommste damit weiter. Gelesen hab ichs nicht. Das tue ich mir um diese Zeit nicht mehr an.

    *** Link veraltet ***

    „Arme Kinder sind genauso schlau und so talentiert wie weiße Kinder.“ :thumbup:

    US-Präsident Biden 2019 in einer Rede in Iowa,

  • Wenn es ein reales Problem ist, um eine Koordinate zu finden: Landkarte und Lineal nehmen? Oder mittels google Maps/Earth?
    Wenns ein rein rechnerisches Problem ist... öh... ich war nur auf der Hauptschule. Ich darf sowas nicht wissen :pfeif:

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Ok, man merkt, ich hatte den Stoff in der Realschule auch nicht. "Orthodrome" noch nie gehört ;) Muss ich mir mal ansehen, vielleicht bringt mich das weiter. Schwede, genau so stehe ich auch da. Immer 1,3 oder besser in Mathe, aber da schlucke ich nun auch. Meine alten Formelsammlungen schweigen sich aus und die ganzen Webseiten erschlagen mich mit Vektoren, cos, acos, sin, tan usw.

    Und ja, das ist ein reelles Problem. Also Karte und Lineal bringt da nichts bzw. eben genau das soll es umgehen. Ich möchte hier eine Vielzahl von Regionen anhand von Koordinaten Abbilden. Diese Koordinaten sind aber nicht die Eckpunkte oder Aussenkanten der Regionen, sondern liegen innerhalb. Daher nehme ich dann je zwei pro Seite, also vorerst mal 8 Punkte und erstelle mir damit diese 4 "Geraden". Deren Schnittpunkte ergeben dann recht gut die Region. Bei anderen Regionen, die schräg liegen oder keine einheitliche Form haben kommen dann mehrere Geraden ins Spiel, die mir dann quasi ein Vieleck bilden sollen. Alles darin ist die Region, das daneben eine Nachbarregion.

    Im Grunde ist es also eine Art fitbounds wie bei Google-Maps, nur dass der dargestellte Bereich eben kein gerades Rechteck ist, sondern irgendein beliebiges Vier- oder Vieleck. Z.B. Nordseeküste. Hier einfach eine Rechteck über die Aussenecken zu ziehen bringt nichts, da die Region halt recht schmal und sehr lang ist, zudem noch von nordost nach südwest verläuft. Ein Rechteck (linear) würde hier einen Bereich ergeben, der weit bis nach Würzburg reicht und hier ist sicherlich nicht mehr die Nordsee ;)

    Sieht man hier recht schön, wie fitbounds das macht und wie es eben nicht sein soll. *** Link veraltet *** (Karte vergrößern). Da wird ein Punkt knapp über Paris (linksunten) genommen und einer bei Dänemark (rechtsoben) genommen und dann einfach ein Rechteck gebildet. Dabei ergeben sich dann aber die beiden anderen Eckpunkte (linksoben) bei Nordengland und rechtsunten bei Würzburg, also komplett falsch. Die Region ist ja eigentlich nur ein recht schmaler Streifen (im Verhältnis zur Länge) und verläuft fast im 45° Winkel (Linear). Errechnet sind es 26,42° von "bei Paris" bis "Norddänemark". (jetzt stelle ich auch gerade fest, dass die Winkelberechnung mir gar nicht weiter hilft, denn der Endpunkt ist ja unklar und der Winkel zu dem ist dann ja wieder ein anderer...)

    Das ist der Schritt eins. Wenn ich das habe, dann würde Schritt zwei kommen, dass ich mit der Formel irgendwie an alles ran komme, was innerhalb liegt. Also quasi sagen kann, Punkt P liegt innerhalb, ja oder nein. Das ist aber auch keine Sichtentscheidung, sondern soll dann die Datenbank lösen.

    Ok, Chris, Deinen Link muss ich mir später ansehen. Das ist schon wieder zu viel cos und sin für den frühen Morgen ;)
    Cura, Deine Seiten habe ich mal eben überflogen. Hört sich schon vielversprechend an, zumindest was ich da so an Text gelesen habe... Auch gerade in Bezug auf meinen nicht benötigten Winkel. Ich bräuchte ja eher den Radius. Stimmt eigentlich mehrere Kreise und die Schnittmenge daraus + das dazwischen ist dann die Region.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Ich bin mir sicher, dass ich das Problem nicht mathematisch lösen würde, da entweder zu ungenau oder zu rechenintensiv - und das nicht, weil die Jahre zwischenzeitlich meinen Mathe-LK förmlich aufgefressen haben ^^

    Vor einem ziemlich ähnlichen Problem standen wir hier mit den weltweiten Häfen - und das sind nicht wenige. Die Lösung: Eine DB. Häfen, selbst die kleinen Puzzeldinger haben internationale Kürzel ähnlich wie Flughäfen und darüber gibt es es fertige Listen mit Länderkennung. Alles in eine DB geschmissen, wird nun ein Hafen aus der Region 1 gesucht, wird auf dem zugehörigen Kartenausschnitt alles dargestellt, was als Regions-ID die 1 hat. Fertig ist der (annähernd) korrekte Kartenausschnitt. Ganz ähnliche Listen müsste es doch eigentlich auch für Käffer geben. Und willste bspw. nun nicht ganz NS als eine Region haben, sondern nur die Nordseeküste, dann müsste das ganze eigentlich über die PLZ-Bereiche zu gliedern sein, also PLZ von - bis = Regions-ID 1. Soll nur mal ein Ideenansatz sein, die konkrete Umsetzung is natürlich nich meine Baustelle :grins:

    Er war Jurist und auch sonst von mäßigem Verstand.

    (Volker Pispers)

  • Bin für alles offen Margin :) Mit dem "ungenau" könnte ich sogar noch leben, denn alles ist genauer als das jetzt ;) Ich habe hier z.B. für den Bereich Nordsee an die 2000 Koordinaten, das sollte zumindest ein besseres Flächenbild geben als die 2 Eckpunkte von Google. Was allerdings die Systeme zur Berechnung sagen und wie die Datenbank darauf reagiert, ja, das ist ein ganz anderes und noch völlig unbekanntes Thema.

    Dein Ansatz ist gut, aber ich stoße da direkt auf ein paar Probleme bzw. Fragen. Aber erst mal vorweg. Ich habe hier schon eine Datenbank mit ca. 80.000 Orten aus Deutschland, 30.0000 aus Österreich und ca. 20.000 aus Frankreich und Schweiz und nochmals ca. 1700 Seen in Deutschland. Das bringt mich aber insofern nicht weiter, da ich keinen offiziellen / direkten Zusammenhang zwischen Orten und Regionen habe. Landkreise, Stadtkreise, Ämter, alles da, aber keine Regionen. Regionen sind leider selbst in DE nicht definiert. Listen mit Region A erstreckt sich von bis gibt es nicht und wenn, dann wieder als Rechteck gesehen oder anhand von Orten abgesteckt.

    Wobei, wenn ich das jetzt so schreibe, dann ist das irgendwie genau die gleiche Fragestellung. Ich habe hier ja zig Unterkünfte und andere fixe Punkte. Diese sind alle mit Koordinaten versehen und wurden manuell bestimmten Regionen zugeordnet. Das wird auch weiterhin erfolgen, also wird die Erfassung immer genauer, je mehr Einzelwerte vorliegen. Ich habe also die Verbindung Ort / Region nicht über den Ort selbst, sondern über Punkte im Ort. Auf Basis dieser Punkte werden nun schon alle Umkreissuchen durchgeführt. Nur eben teils sehr ungenau oder unbrauchbar, weil die Bezugsfläche falsch ist.

    Über diese Punkte kann ich also die Ausmaße des Ortes bestimmen. Klappt sehr gut, denn das läuft schön länger. So komme ich auch die Ausmaße der Regionen ran. Ort / Region ist bekannt, über den Punkt im Ort, also habe ich eine Abbildung der Region über alle zugeordneten Punkte. Klar, da kann es schon sein, dass da große Teile einer Region fehlen, z.B. die ganze westliche Hälfte der Nordsee bei Frankreich. Aber das ist in dem Fall völlig egal, denn ich benötige ohnehin nur die Daten, bei denen auch Unterkünfte vorhanden sind. Keine Unterkunft, kein Punkt, keine Rückschluss - wird aber auch nicht benötigt. Es ist also uninteressant, welche Region westlich der Nordsee liegt, da ich dort ohnehin keine Unterkunft habe. Würde da eine dazu kommen, dann hätte ich ab dem Moment ja auch einen Bezugspunkt. So lange der nicht da ist, ist es egal.

    Anmerkung: Es geht nicht um die grafische Darstellung, denn die wäre in der Tat falsch. Es geht nur um die Berechnung der umliegenden Regionen (zu denen auch Punkte vorhanden sind), also eine Art Umkreissuche. Bei Orten geht das noch recht gut, denn die sind sehr häufig kreisförmig (z.b. Berlin), aber auch nicht alle. Wü z.B. geht hier nicht. Nehme ich da den offiziellen Mittelpunkt und lege einen Kreis drum rum, dann habe ich auf der einen Seite ca. 30km zu viel und auf der anderen Seite fehlen 10 km. Ich müsste also den Mittelpunkt neu festlegen und genau das mache ich ja quasi über den Mittelwert aller hinterlegter Punkte. Aber auch das ist noch nicht gut, aber besser als vorher, denn Wü ist nicht rund, sondern länglich. Um also die volle Länge mit einem Kreis abzudecken würde ich auch wesentlich mehr in der Breite erhalten, als benötigt oder richtig.

    Genau hier war dann mein Gedankenansatz, dass ich das weder mit Kreisen oder Rechtecken festlege, sondern mit Vier- und Vielecken, deren Verlauf auch um x Grad verschoben sein kann. Das würde die Region / den Ort oder was auch immer (nach meinem Gedankengang) am besten abdecken. Nur das eben automatisiert auf Basis der vorhandenen Daten. Hatte es auch schon manuell versucht mit dem Bodensee. Das waren 5 Stunden Arbeit für eine Region. Das ist ein Unding. Zudem würde es das Problem nicht lösen, dann Regionen / Orte auch quer liegen können.

    Ok, ich verdrehe mich gerade wieder, ich merke es...

    Zitat

    wird nun ein Hafen aus der Region 1 gesucht, wird auf dem zugehörigen Kartenausschnitt alles dargestellt, was als Regions-ID die 1 hat.


    Das in etwa habe ich schon. Es geht aber letztendlich nicht darum, was IN einem bestimmten Bereich liegt (brauche ich ja nur, um die Abmessungen zu bestimmen), sondern was DANEBEN liegt.

    Sieht man auch auf der oben verlinkten Seite. Da stehen unten die "benachbarten Regionen". Und man erkennt, das versagt hier so gänzlich, da die Nordsee eben nicht rund oder rechteckig ist. Hier hingegen klappt es sehr gut: *** Link veraltet ***

    Das Ganze soll auch nur ein Feature sein für Besucher, die eine Region betrachten. Denen möchte ich dann halt andere aus der Gegend auflisten. Also wenn nun einer den Schwarzwald anschaut, was liegt rings um den rum. Würde es solche Listen geben (für Regionen weltweit), dann wäre ich überglücklich, aber ich kenne leider keine einzige, noch nicht mal für Deutschland. Es gibt Bilder, ok, aber die helfen nicht weiter, denn das System muss die Daten dann ja verarbeiten können.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Das Problem selber würde mir auch mehr Gehirnschmalz abverlangen als Momentan zur Verfügung steht. Wäre es nicht einfacher das Problem über definierte Punkte und Kreise zu lösen?
    Vergleichbar mit Deiner Unterkunftslösung? 4 oder 5 markante Orte aus dem Gebiet ein Kreis oder Oval in der selben Farbe zu verpassen?

    Frei nach Dieter Nuhr
    Das Internet ist zum Lebensraum der Dauerbeleidigten geworden, die immer einen Grund finden, anderen irgendetwas vorzuwerfen, um sich selbst moralisch zu erhöhen.

  • Guppy, ja, das mache ich jetzt ja schon. Betrifft ja auch das gleiche System. Das mit den Kreisen geht aber eben nur, wenn die Region / der Ort auch Rund ist. z.B. Berlin. Da gehe ich her, nehme alle erfassten Punkte in Berlin, errechne einen neuen fiktiven Mittelpunkt, nehme dessen Radius und lege einen Kreis mit +3km "darüber". Das ist dann meine Bezugsfläche. Alles was nun z.B. in 10km Entfernung zum Kreis liegt ist "Nachbar".

    An anderen Stellen, etwa dem Bodensee mache ich das mit einem Rechteck, denn der liegt ja recht waagrecht. Auch hier, Rechteck berechnen, vergrößern und dann alles was im Abstand von x liegt ist "Nachbar".

    Genauso würde ich es mit der Nordseeküste machen, nur die liegt nun eben nicht waagrecht, ist auch kein Kreis, sondern liegt quer. Mehrere Einzelkreise habe ich schon versucht. Das haut nicht hin, da dann immer wieder Bereiche fehlen. Oder die Kreise wären so groß, dass an einigen Stellen viel zu viel erfasst wird. Nordsee ist hier auch nur ein Beispiel, das muss mit allen Regionen funktionieren, also eben variabel sein. Und wirklich variabel ist nur ein Vieleck oder Dreieck.

    Ein Ansatz war es schon, das mit mehreren Rechtecken zu lösen. Aber hier eben das Problem, dass diese waagrecht und senkrecht sind und keinen Winkel beachten. Da müsste man also, um nicht zu viel zu erfassen, die Rechtecke sehr klein machen und sehr viele verwenden. Bei der Nordsee war ich da dann schon bei über 30 Stück und das war noch alles andere als genau. so 50 oder so müssten passen, aber letztendlich muss das System mit den Daten ja auch noch arbeiten können. Allerdings erfasste ich diese Rechtecke noch per Hand, denn errechnet scheiterte ich da auch schon. Ich fand hier keine Lösung zu erfassen oder zu errechnen, ob ein Punkt nun am oberen Rand oder am unteren Rand liegt. Rein von der Koordinate her liegt er höher, das ist klar, aber das sagt leider nicht aus, wo der genau ist, da die Region ja selbst schräg liegt. Beispiel. Die Koordinate von Dithmarschen ist höher als die Höchste von Frankreich, dennoch ist es der untere Rand, denn der obere ist Dänemark.

    Aber auch hier gibt es ein großes Problem und das wird eben immer größer, ja näher eine Region an einem Pol liegt. In die Berechnung muss Erdradius und variierende Breite der Längengrade einfließen, denn einfach so 5km drauf zählen geht dort nicht.

    Zitat

    in der selben Farbe zu verpassen?


    Wie gesagt, es geht nicht um eine Darstellung in der Karte, das brauche ich nicht. Ich brauche nur Werte, um andere Punkte aus der Daten im Umkreis bestimmen zu können

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Zitat

    Wie gesagt, es geht nicht um eine Darstellung in der Karte, das brauche ich nicht. Ich brauche nur Werte, um andere Punkte aus der Daten im Umkreis bestimmen zu können

    Ich kapier das nicht. Willst Du einfach das Umland mit zeigen oder weitere Deiner Unterkünfte im Radius X? Warum muss es bspw. die ganze Nordsee sein? Ich kann mir nicht vorstellen, dass das wirklich interessant ist - also Zielgruppen gerecht. Ich will bspw. in die Ecke St. Peter oder in die Ecke Norderney oder Richtung Sylt ... Wenn ich Richtung Sylt will, dann interessiert mich Norderney nicht die Bohne.

    Er war Jurist und auch sonst von mäßigem Verstand.

    (Volker Pispers)

  • Jain. Ich möchte, wenn eine Region gewählt ist, eine Textanzeige (Auflistung) der Regionen im Umkreis. Da sollen keine Markierungen in Karten erfolgen und auch keine Unterkünfte angezeigt werden, sondern die Namen der Regionen, die drum herum liegen. Das hat schlicht auch den Grund, dass viele Gastgeber ihre Unterkunft genau an der Grenze zu einer Region haben. Oder eben verschiedene Bezeichnungen für die gleiche Stelle vorhanden sind. z.B. Schwansen, Angeln, Schleiregion. Diese Regionen sollen dann mit angezeigt werden.

    Kann man sich auch gute anhand der Bezirke in Berlin vorstellen. Wählt man einen Bezirk, dann sagt das System, welche drumrum liegen. Wählt man einen Ortsteil, dann werden die umliegenden Ortsteile aufgelistet. Wählt man die Stadt Berlin selbst, dann kommen die anderen Orte drumrum. Also je genauer die Vorauswahl, desto genauer die "Alternativen".

    Ansonsten hast Du recht Margin. Aber das mit der Nordsee war ja nur ein Beispiel, weil man an der das Problem eben gut erkennen kann. Das System funktioniert dann ja nicht nur mit den Großregionen, sondern auch mit Sylt, Dithmarschen, Halbinsel Eiderstedt etc.

    Also immer "welche Regionen befinden sich um die aktuell gewählte drumrum" - egal was gewählt ist.

    Ok, jetzt fällt mir eine andere Region ein, auch schräg gelegen und wesentlich kleiner: Rennsteig. Auch hier eben, was liegt drum rum.

    Und dieses im "Abstand x" ist ja nur die Limitierung, denn "drumrum" muss ja irgendwie begrenzt werden. Beispiel Rennsteig: Da wäre die Limitierung z.B. 10 km. Also welche Regionen liegt 10km um den Rennsteig? Macht ja keinen Sinn, hier Regionen als Alternative zu liefern, die 100 km weit weg sind ;)

    Es geht also im Grunde rein um Flächen. Ob diese Flächen nun Orte, Regionen oder Länder sind ist egal. Region Nordsee war ein Beispiel. Und Unterkünfte habe ich so genannt, weil das eben meine Bezugspunkte sind, die Orte und Regionen, also verschiedene Flächen, anhand von Koordinaten verbinden. Kannst auch Koordinaten, Punkte oder sonst wie nennen ;)

    Ich kann also ähnlich Deinen Häfen problemlos abfragen:
    "Welche Punkte liegen in Fläche X" oder "Welche Punkte liegen nicht in Fläche X". Das geht einfach über die Zuordnung, so wie bei Dir mit der Hafen-ID. Auch kann ich problemlos abfragen, "Welche Punkte liegen x km um einen anderen definierten Punkt". Auch das geht Problemlos, weil der Ausgangspunkt fest und bekannt ist. Dann einfach einen Radius y und fertig.

    Ich kann aber nicht sagen (und das suche ich): "Welche Punkte liegen nicht in Fläche X aber sind maximal x km von deren Außengrenzen entfernt." Eben weil ich die Fläche dieses Bereichs nicht kenne und ein einzelnen Fixpunkt in der Mitte nichts bringt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • So, nachdem ich meine eigenen Beiträge hier immer noch nicht sehe und ich die "unveröffentlichten" Beträge von mir selbst nicht veröffentlichen kann, mal so einen neue Anmerkung. Das was ich hier vor habe ist wohl etwas übertrieben und das Rad neu erfunden. Sowohl PHP als auch MYSQL haben ja eigene geometrische Funktionen, unter anderem genau dafür um zu berechnen, ob ein bestimmter Punkt in einem Polygon liegt oder nicht. Ich glaube, ich sollte mich mal auf den Gleis begeben ...

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Zitat

    Wenn ich Richtung Sylt will, dann interessiert mich Norderney nicht die Bohne

    und wenn ich nach Spiekeroog will, interessiert mich Norderney und Sylt nicht die Bohne... obwohl Norderney sogar nah dran wäre. Dementsprechend würde ich da Margin zustimmen...

  • Hm, dann bin ich wohl hier der einzige der sowas wie den Schnittpunkt zweier "Geraden" (da faengt die Problematik schon an) auf der Erdkugel schon implementiert hat. Allerdings ist die Entwicklungskiste grade aus ;)

  • Tscha, das Problem hätte er nicht, wenn die Erde enn Würfel wäre.

    „Arme Kinder sind genauso schlau und so talentiert wie weiße Kinder.“ :thumbup:

    US-Präsident Biden 2019 in einer Rede in Iowa,

  • So kompliziert ist das eigentlich gar nicht, wenn man weiß, welche Formeln man für was braucht, wie die zusammengestellt und gefüllt werden und in welchem Format man die Werte benötigt, bzw. wie man die umrechnet. Daran scheitere ich ja. Die Problempunkte einzeln sind nicht so das Problem, aber das alles zu kombinieren....

    Aber es nimmt langsam Formen an, im wahrsten Sinne des Wortes :)


    Nun ist aber das skalierte Polygon irgendwie hübsch, aber auch falsch, wenn auch besser als vorher, die Rechtecke. Hatte da nun extra über einen fiktiven Mittelpunkt und berechneten Winkeln die neuen Punkte des Polygons im Abstand von 15km berechnet, aber das ist irgendwie Unfug, das sehe ich nun auch. Die einzelnen Wegstrecken müssten parallel und dann um Winkel x versetzt verschoben werden.

  • Und damit dem nicht genug ist, gibt es noch die Geocacher, denen die 4 Geo-Koordinaten nicht genug sind, sondern man soll die "Geraden" auch noch verlaengern, und dann den Schnittpunkt ermitteln. Sprich, wenn sich die Paare normal nicht kreuzen wuerden. Synonym, wenn Du Dir dazu Anregungen holen willst: *** Link veraltet *** .. nutze ich zwar noch nicht, gabs zu meiner Zeit noch nicht, sieht aber interessant aus.