; ; ABSTANDSTREUER KEGELENTWURF IN NORMALER (POLARER) LAGE MIT 2 LÄNGENTREUEN PARALLELKREISEN ; ========================================================================================= ; ; Nr. bei Wagner: 2 ; Name: Abstandstreuer Kegelentwurf mit 2 längentreuen Parallelkreisen in normaler Lage ; Abstandstreuer Schnittkegelentwurf ; Variante: Zentrierend ; Autor: ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 34ff. ; Richtung: Inverse Transformation ; Richtung: Direkttransformation ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; Fiala: Mathematische Kartographie, Berlin: Verlag Technik 1957 ; (C) Rolf Böhm Bad Schandau 2006 ; Polversetzend/(Selbst-)Zentrierend: Bei Kegelentwürfen ist das Rechenzentrum (der Pol) meist ; nicht der Kartenmittelpunkt. Dies ist ein (selbst)zentrierendes Programm, welches den Pol ; so versetzt, dass der Mitte der Quellkarte zur Mitte der Zielkarte wird. ; ; Anmerkung 1: Die Berührungsparallel oder die Schnittparallele haben k e i n e n ; Einfluss auf die Zentrierung. Entscheidend ist der Quellbildmittelparallel ; ; Anmerkung 2: Auf die X-Lagerung hat die Selbstzentrierung ebenfalls keinen Einfluss, ; dies ist, wie bei allen anderen Programmen, mit mit lambda0 einstellen. ; Benutzte Variablen ; ================== ; ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Abstandstreuer~Schnittkegelentwurf~(zentrierend) _var phi ; Geographische Breite _var lambda ; Geographische Länge _var alpha ; Azimut ebene Polarkoord., auch Schiefazimut _var delta ; Poldistanz/geographisch, auch Schiefdistanz _var m ; Radius ebene Polarkoordinaten _var n ; Winkelreduktionsfaktor (Cos(Delta0)) _var epsilon ; ... ; ; Konstanten der Transformation ; _var scale ; Kartenmaßstabszahl (also 1000000, nicht 1/1000000) _var phi1 ; Geogr. Breite des 1. Schnittparallels _var phi2 ; Geogr. Breite des 2. Schnittparallels _var lambda0 ; Geogr. Breite des Mittelmeridians _var Pol-y ; Polversatz nach Nord ; _var delta1 ; Poldistanz des 1. Schnittparallels _var delta2 ; Poldistanz des 2. Schnittparallels _var delta0 ; Mittelwert der deltas _var epsilon0 ; dessen Differenz zu den deltas _var tand0 ; tan(delta0) _var C ; epsilon0 * cot(epsilon0) * tan(delta0) Wagner S. 39 _var 2pi ; 360 Grad _var -------- ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial $077 ; Dialog pause Hinweis:~Dieses~Programm~rechnet~eine~Vorwärtstransformation.\\Es~muss~mit~einer~direkt~arbeitenden~Projection~engine~abgearbeitet~werden. input scale Maßstabszahl input phi1 1.~Schnittparallelbreite~in~Grad input phi2 2.~Schnittparallelbreite~in~Grad input lambda0 Berührungspunktlänge~in~Grad ; Eingegebene Werte auf Min/Max bringen clip scale 1 1E12 clip phi1 -90 90 clip phi2 -90 90 clip lambda0 -180 180 ; Konstanten berechnen mul phi1 °( mul phi2 °( mov delta1 pi/2 sub delta1 phi1 mov delta2 pi/2 sub delta2 phi2 mov delta0 delta1 add delta0 delta2 div delta0 2 ; Mittelwert mov epsilon0 delta0 sub epsilon0 delta1 abs epsilon0 ; Differenz zu Mittelwert mov tand0 delta0 tan tand0 ; tan(delta0) mov C epsilon0 cot C mul C epsilon0 mul C tand0 ; Konstante Wagner S. 39 mov n delta0 cos n mov r0 epsilon0 sin r0 mul n r0 div n epsilon0 ; n fertig ; Pol-y für Selbstzentrierung berechnen. Mit dem vorhandenen pi-co einfacher, als indirekt mov r0 Cy ; "Phi" von Cy abholen. "Lambda" alias Cx sei immer 0 ... mul r0 sigma mul r0 °( ; "Phi" in Bogenmaß umrechnen ; ; Delta berechnen mov delta pi/2 sub delta r0 ; ; Entwurf mov epsilon delta0 sub epsilon delta mov Pol-y C sub Pol-y epsilon ; ; m in y umrechnen. Aus x=0 folgt, da m=sqrt(x²+y²) m=y! div Pol-y scale ; Maßstab einrechnen mul Pol-y Ry' ; Erdradius einrechnen proof Pol-y ; Kontrollausgabe ; Programm ist initialisiert mov initial 1 $077: ; ; SIMD-Laufbereich ; ================ ; mov lambda x sub lambda lambda0 cmod lambda -180 180 mov phi y ; ; Umrechnung in Bogenmaß ; ---------------------- ; mul phi °( mul lambda °( ; ; Eigentlicher abstandstreuer Entwurf (in Polarkoordinaten) ; --------------------------------------------------------- ; mov alpha lambda ; Azimut alpha mul alpha n ; mov r0 pi/2 ; Radius m sub r0 phi ; delta = pi/2 - phi mov epsilon delta0 sub epsilon r0 ; epsilon = delta0 - delta mov m C sub m epsilon ; ; Polarkoordinaten m/alpha in kartesische Koordinaten ; --------------------------------------------------- ; mov x alpha ; kartesische Koord. x y in Polarkoordinaten m alpha sin x mul x m mov y alpha cos y neg y ; ja, minus Cosinus! mul y m ; ; Maßstab, Kartenmittelpunkt etc. einrechnen ; ------------------------------------------ ; mul x Rx' div x scale add x Cx' mul y Ry' div y scale add y Cy' add y Pol-y ; ; Schlussarbeiten ; --------------- ; mov x' x mov y' y exit _end