Wie zeichne ich bei einer Linie auf der Erdoberfläche eine Linie senkrecht dazu?
Entschuldigung, wenn dies eine sehr einfache Frage ist. Ich dachte, dies wäre eine einfache Aufgabe, aber sie erweist sich als kontraintuitiv.
Ich beginne mit der blauen Linie in der Abbildung unten (siehe Link - Ich kann noch keine Zahlen hochladen). Ich fand eine senkrechte Linie, indem ich den Gradienten der blauen Linie (m) berechnete und dann eine weitere Linie (grün) mit dem Gradienten -1 / m zeichnete. Wenn ich die Linien in Matlab zeichne (unter Verwendung von "Plot" und "Achse gleich"), sehen sie erwartungsgemäß senkrecht aus.
Wenn ich diese Linien jedoch (mithilfe der KML-Toolbox) nach Google Earth exportiere, sehen sie nicht mehr senkrecht aus (siehe Link unten; die kürzere Linie ist die blaue Linie aus der vorherigen Abbildung).
Ich verstehe, dass auf gekrümmten Oberflächen seltsame Dinge passieren, aber ich dachte, die Linien sollten zumindest lokal senkrecht aussehen. Ich vermute, dass dies etwas mit der Projektion in Google Earth zu tun hat - insbesondere mit der Tatsache, dass die Gitterzellen ungefähr ähnliche Seitenlängen zu haben scheinen, die Längskante jedoch eine Länge von 1 Grad hat, während die Längskante eine Länge von 0,5 hat Grad.
Also zusammenfassend:
- Ist meine Methode zum Finden einer senkrechten Linie auf einer gekrümmten Oberfläche gültig? (dh Zeichnen einer Linie mit einem Gradienten von -1 / m)
- Sehen die senkrechten Linien im Google Earth-Bild wie erwartet aus oder ist etwas Seltsames los?
AKTUALISIEREN:
Um mehr Kontext bereitzustellen: Ich betrachte Radardaten aus einem Flugzeug. Der mehrfarbige Bereich ist der „Schwad“, in dem Beobachtungen aufgezeichnet wurden. Die blaue Linie, mit der ich in der obigen Erklärung begonnen habe, verläuft parallel zum Schwad: Dies ist die Fluglinie des Flugzeugs (das Flugzeug bewegte sich in ungefähr südwestlicher Richtung). Das Radar blickt links in die Richtung senkrecht zur Fluglinie. Ich versuche, eine Linie senkrecht zur Fluglinie zu zeichnen. Dies sollte die Richtung sein, in die das Radar schaut, und sollte den Schwad sauber schneiden. Wie Sie sehen, ist dies nicht der Fall.
quelle
Antworten:
Ein elegantes Prinzip liefert eine einfache Antwort:
Dies bedeutet, dass wir nach einer affinen Änderung der Koordinaten (die normalerweise nur eine Neuskalierung einer von ihnen beinhaltet) Formeln der euklidischen Geometrie verwenden können, wie den Satz von Pythagoras zur Berechnung von Entfernungen und die Formel mit negativer reziproker Steigung zum Auffinden von Senkrechten.
Mit Breiten- und Längengradkoordinaten auf der Kugel (weg von den Polen, wo der Längengrad singulär wird) müssen wir nur die Ost-West-Richtung neu skalieren, um die schrumpfende Länge eines Längengrads widerzuspiegeln, wenn man sich den Polen nähert. Bei einem sphärischen Modell der Erde ist diese Schrumpfung durch den Kosinus des Breitengrads gegeben. Dies ist lediglich eine Änderung des Seitenverhältnisses der Handlung, nichts weiter.
Dies funktioniert für Regionen, die sich nicht mehr als einige Breitengrade von Nord nach Süd erstrecken und sich keinem der Pole nähern.
Deshalb alles , was Sie tun müssen, ist:
Multiplizieren Sie alle Längen mit dem Kosinus eines typischen Breitengrads.
Berechnen Sie die senkrechte Linie.
Machen Sie die Koordinateneinstellung rückgängig.
Angenommen, die Spur des Flugzeugs hat sie von (lon, lat) = (-78, 40) nach (-79, 41) gebracht. Wir können einen typischen Breitengrad zwischen 40 und 41 annehmen, z. B. 40,5.
Schritt 1 Die angepassten Koordinaten sind (-78 * cos (40,5), 40) = (-59,31167, 40) und (-79 * cos (40,5), 41) = (-60,07207, 41).
Schritt 2 In der Frage wird vorgeschlagen, dies mit einer Methode mit negativer reziproker Steigung zu tun. Das wäre richtig, aber es wird in einigen Fällen fehlschlagen (wo die Steigung unendlich ist). Es ist allgemeiner und leistungsfähiger, Vektorarithmetik zu verwenden. So läuft die Berechnung ab.
Der Richtungsvektor für die Flugbahn ist die Verschiebung von Anfang bis Ende.
Wenn Sie einen Vektor (x, y) im rechten Winkel im Uhrzeigersinn drehen, erhalten Sie (y, -x), von wo aus eine senkrechte Richtung nach rechts ist
Nach dem Satz von Pythagoras ist die Länge dieses Vektors die Quadratwurzel der Summe der Quadrate seiner Koeffizienten.
Bewegen wir uns beispielsweise 0,2 Grad entlang dieses Vektors vom Startpunkt des Fluges des Flugzeugs. Der Start ist bei (-59.31167, 40) und die Verschiebung beträgt 0,2 / | w | mal w, endend bei
Schritt 3 Um die Anpassung rückgängig zu machen, teilen Sie die ersten Koordinaten aller resultierenden Punkte durch denselben Kosinus wie in Schritt 1:
Wenn Sie diese Punkte mit einem Seitenverhältnis von 1: 1 zeichnen, erscheint der Winkel eher stumpf als rechtwinklig. Wenn Sie jedoch das Seitenverhältnis auf 1: cos (40,5) (ca. 4: 3) ändern, wird der Winkel korrekt als 90 Grad angezeigt. Wenn Sie die Punkte mit einer konformen Projektion - einschließlich des Mercator von Google - zeichnen, ist auch der Winkel korrekt.
quelle