; ; WAGNER I = UNECHTZYLINDRISCHER FLÄCHENTREUER ENTWURF MIT SINUSLINIGEN MERIDIANEN UND POLLINIE ; ============================================================================================= ; ; Nr. bei Wagner: 18a ; Kurzname: Wagners Entwurf I ; Name: Wagners Entwurf I (sinuslinig, flächentreu) ; auch zitiert als Kavrayskiy (1936), Siemon (1936), Werenskiod (1944) ; Originalname: Unechtzylindrischer flächentreuer Entwurf mit sinuslinigen Meridianen und Pollinie ; Autor: Karlheinz Wagner, Archiv der deutschen Seewarte, Hamburg 1932 ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 181ff. ; Richtung: Invers ; ; Das Programm übernimmt die Koordinaten eines Punktes (x/y) und transformiert ; diese in einen Punkt (x'/y'). ; ; x/y sind ebene Zielpunktkoordinaten, x'/y' geben die geogr. Breite und Länge ; der Position auf der Quell-Erdkugel, auf der der Zielpunkt gelesen werden ; kann. ; ; Maßstab und Mittelmeridianlänge werden abgefragt. ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; Fiala: Mathematische Kartographie, Berlin: Verlag Technik 1957 ; (C) Rolf Böhm 2004 ; Benutzte Variablen ; ================== ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Wagners~Entwurf~I _var phi ; Geographische Breite _var lambda ; Geographische Länge _var psi ; Parametrisierte Länge _var t1 ; temporär _var t2 ; temporär _var 4r3 ; 4. Wurzel aus 3 _var 2/r3 ; 2 / Wurzel aus 3 _var 3/(2*4r3) ; 2/3*(4. Wurzel aus 3) _var lambda0 ; Null-Länge ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial 077$ ; Dialog input scale Flächentreuer~Entwurf~mit~sinuslinigen~Meridianen~und~Pollinie~(Wagner~I)\\Maßstabszahl clip scale 1 1E12 input lambda0 Mittelpunktslänge~in~Grad clip lambda0 -180 180 ; Konstanten (Konfigurationsvariablen) berechnen mov 4r3 3 root 4r3 4 mov t1 2 mov t2 3 root t2 2 div t1 t2 mov 2/r3 t1 mov t1 3 div t1 2 div t1 4r3 mov 3/(2*4r3) t1 ; Programm ist initialisiert mov initial 1 077$: ; ; SIMD-Laufbereich ; ================ ; ; Maßstab, Kartenmittelpunkt etc. einrechnen ; ------------------------------------------ sub x Cx' ; Bildmittelpunkt div x Rx' ; Erdradius mul x scale ; Kartenmaßstab sub y Cy' div y Ry' mul y scale ; ; Eigentlicher Entwurf, dieser invers ; ----------------------------------- ; psi berechnen mov psi y div psi 4r3 mov t1 psi ; Test, damit keine gespiegelten Weltbilder auftreten abs t1 ; Absolutbetrag cmpgt t1 pi/2 out ; Wenn psi>pi/2 ausserhalb ; phi berechnen mov t1 psi sin t1 mul t1 2/r3 asin t1 errjump out mov phi t1 ; lambda berechnen mov t1 3/(2*4r3) mul t1 x mov t2 y div t2 4r3 cos t2 div t1 t2 mov lambda t1 ; ; In Gradmaß umrechnen und Ausserhalbtest ; --------------------------------------- mul phi (° mul lambda (° cmplt phi -90 out cmpgt phi 90 out cmplt lambda -180 out cmpgt lambda 180 out ; ; Schlussarbeiten ; --------------- ; mov x' lambda mov y' phi ; Lambda um lambda0 kreisen lassen add x' lambda0 cmod x' -180 180 exit out: mov x' -9999 mov y' -9999 exit _end