Frage

grundsätzlich möchte ich:

  • Zeichnen Sie einen Pfad zwischen zwei Positionen in der Erde, mit Längengrad- und Latitude-Koordinaten
  • können diesen Weg mit mehreren geraden Linien (z. B. mit OpenGL) rendern können
  • Geben Sie eine Höhe an, und Bonuspunkte, um über die Kugel bogen zu können (z. B. ein Flugweg)
  • eignet sich nicht wirklich, welche Sprache es ist. Ich kann übersetzen :)

    Es gibt die Entfernungsformel "Great-Circle", aber ich bin nicht sicher, wie ich es in dieses Problem anwenden würde.

War es hilfreich?

Lösung

In Ordnung, hier ist mein Ansatz. Wenn eine der Schritte unklar ist, teilen Sie mir und ich werde erarbeiten.

    .
  1. wir gehen von a bis b .
  2. Wir normalisieren diese Vektoren, a a |, b = b / | B |. (Die Größenordnung | A | und | B | ist der Radius der Erde, wenn wir auf dem Boden bleiben.)
  3. Wir nehmen das Kreuzprodukt, C = a x . Wir drehen sich um diesen Vektor, der c , um a bis b zu tragen, und die Größe von c ist das Cosinus des Winkels zwischen a und b : theta= acos (| c |). Ziemlich cool, huh?
  4. Wir wollen die Reise nicht in einem Sprung machen, wir wollen n kleine Schritte, also teilen wir das Teilen auf. Wir beginnen bei a , dann drehen wir in jedem Schritt um c um einen Winkel theta / n.
  5. das gibt einen Pfad am Boden. Um einen Bogen zu erhalten (vielleicht in einer Höhenlage beginnen), entscheiden wir, wie viel Höhe in jedem Schritt hinzufügen (sehr einfach in kugelförmigen Koordinaten - in cartesian, den wir den Vektor skalieren müssen).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top