Eine Kugel mit SVG zeichnen

In einem Wappen sah ich eine abstrahierte „Erdkugel“ mit Breiten- und Längengraden. Es gibt zahlreiche Projektionen der Erde auf eine Ebene. Mir stellte sich die Frage, wie müssten die Breitenkreise gezeichnet werden, wenn ein Betrachter aus sehr großer Entfernung auf die Kugel blickt. In diesem Fall handelt es sich eine orthografische Azimutalprojektion.

Erdkugel mit Breitenkreisen. Grün Äquator, blau Polarkreis.

Der Fall, dass der Nordpol oben und der Südpol unten liegt, ist dabei trivial, die Breitenkreise sind gerade Linien, die parallel zum Äquator liegen. Die Frage ist, was passiert, wenn die Nord-Süd-Achse der Erde zum Betrachter geneigt wird.

Wird die Erdachse geneigt, werden die Breitenkreise zu Ellipsen. Da der Teil des Breitenkreises, der auf der abgewandten Seite liegt, soll nicht gezeichnet werden. Daher sind der westliche und östlich (oder linke und rechte) Punkt auf dem Erdkreis zu bestimmen, an dem der Breitenkreis hinter der Erde verschwindet.

Der Schnittpunkt eines Kreises mit einer Ellipse ist nicht einfach zu bestimmen. Hier hilft uns aber der Sonderfall, dass die Ellipsen den Kreis nur berühren und die Nullpunkte auf der y-Achse liegen.

Dies bedeutet, die Steigung von Kreis und Ellipse sind in diesem Fall gleich.

D.h. x = Sqr((r ² – a ⁴ / b²) / (1 – a² / b²))

Berührungspunkt Kreis – Ellipse

Die Dateien, die LibbreOffice Calc Tabelle zum Berechnen der Breitenkreise und ein kurzes README.md findet sich auf github.com.

Hier noch die Formeln (als PDF) für die Berechnung der Ellipsen. LibreOffice Formel ist nicht sonderlich komfortabel. Mühsam ernährt sich das Eichhörnchen.