; ; WAGNER VI = ABSTANDSGLEICHER UNECHTZYLINDRISCHER ENTWURF MIT ELLIPTISCHEN MERIDIANEN UND POLLINIE ; ================================================================================================= ; ; Nr. bei Wagner: 19c ; Kurzname: Wagners Entwurf VI ; Name: Wagners Entwurf VI (elliptisch, abstandsgleich) ; Originalname: Abstandsgleicher unechtzylindrischer Entwurf mit elliptischen Meridianen und Pollinie ; auch: Putnin P1 ; Autor: Karlheinz Wagner 1932 ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 197f. ; 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, Berührungslänge und längentreuer Parallel werden abgefragt. ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; (C) Rolf Böhm 2004 ; Michael Klein, Berlin 2006: mul/div-Kürzung ** ; Benutzte Variablen ; ================== ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Wagners~Entwurf~VI _var phi ; Geographische Breite _var lambda ; Geographische Länge _var psi ; Parametrisierte Breite _var sinpsi ; Sinus davon _var t1 ; temporär _var t2 ; temporär _var q ; siehe Wagner _var phi0 ; Längentreuer Parallelkreis _var lambda0 ; Null-Länge _var r3/pi ; root(3)/pi ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial 077$ ; Dialog input scale Abstandsgleicher~Entwurf~mit~elliptischen~Meridianen~und~Pollinie~(Wagner~VI)\\Maßstabszahl clip scale 1 1E12 input phi0 Geographische~Breite~des~längentreuen~Parallels clip phi0 0 89.9999 ; 90° gibt ein Problem mul phi0 °( input lambda0 Mittelpunktslänge~in~Grad clip lambda0 -180 180 ; Konstanten (Konfigurationsvariablen) berechnen mov t1 phi0 cos t1 ; Zähler: sin(psi0) mov t2 3 root t2 2 mul t2 phi0 div t2 pi asin t2 cos t2 ; Nenner: cos(psi0) div t1 t2 mov q t1 mov r3/pi 3 root r3/pi 2 div r3/pi pi ; 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 sinpsi y mul sinpsi r3/pi mov psi sinpsi asin psi ; phi berechnen ; mov phi sinpsi ;; ** M. Klein ; div phi r3/pi ; eigentlich * pi/r3 ;; ** M. Klein mov phi y ;; '' M. Klein ; lambda berechnen mov t1 x mov t2 psi cos t2 mul t2 q 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