Punkte in der Ebene und im 3D-Raum werden mittels gegebener Parameter transformiert. Eine Folge von bis zu 13 Transformationsschritten kann abgearbeitet werden. Auf diese Weise können alle denkbaren Transformationen konfiguriert werden.
IN DUBIO PRO GEO berechnet ebene und räumliche Koordinatentransformationen,
das sind Umrechnungen von Punktkoordinaten eines Quellsystems
in Koordinaten eines Zielsystems.
Es wird nicht vorausgesetzt, dass die Achsen der Systeme irgendwie näherungsweise
ausgerichtet sind. Koordinaten werden über eingegeben.
Kartesische Linkssysteme, kartesische Rechtssysteme (XYZ)
und Gittersysteme (Nordwert,Ostwert,Höhe)
(oder andere Koordinatenreihenfolge) können unmittelbar transformiert werden. Ellipsoidische Systeme (Länge,Breite,Höhe)
müssen erst mit
umgerechnet werden. Siehe Koordinatensystemtyp.
Die Koordinaten im Quellsystem werden immer mit x,y,z
und die im Zielsystem mit X,Y,Z
bezeichnet. Bei Gitterkoordinaten entspricht Nord = x und/oder X,
Ost = y und/oder Y und Höhe = z und/oder Z.
Jede Transformation kann man sich als eine Folge von elementaren Transformationsschritten
vorstellen. Durch beliebige Kombination der Schritte
Translation = Verschiebung
Skalierung = Maßstabsänderung, bei Gittersystemen zuzüglich zum Gittermaßstabsfaktor
Rotation = Drehung
Transvektion = Scherung
Reflexion = Spiegelung von Links- nach Rechtssystem oder umgekehrt
mit den Parametern
Verschiebungs- und Drehungsparameter
Maßstabs- und Scherparameter
tx
Translation entlang der x-Achse
mx
Maßstabsfaktor der x-Achse
ty
Translation entlang der y-Achse
my
Maßstabsfaktor der y-Achse
tz
Translation entlang der z-Achse
mz
Maßstabsfaktor der z-Achse
mxy
Maßstabsfaktor für x- und y-Achse
εx
Euler-Winkel für Rotation um x-Achse
m
Maßstabsfaktor für alle Achsen
εy
Euler-Winkel für Rotation um y-Achse
fxy
Scherfaktor für y- gegen x-Achse
εz
Euler-Winkel für Rotation um z-Achse
fyx
Scherfaktor für x- gegen y-Achse
ε
2D Rotationswinkel (identisch mit εz)
fxz
Scherfaktor für z- gegen x-Achse
oder Rotationswinkel um Euler-Achse
fzx
Scherfaktor für x- gegen z-Achse
ex
Euler-Achse, x-Vektorkomponente
fyz
Scherfaktor für z- gegen y-Achse
ey
Euler-Achse, y-Vektorkomponente
fzy
Scherfaktor für y- gegen z-Achse
ez
Euler-Achse, z-Vektorkomponente
τxy
Scherwinkel für y- gegen x-Achse
τyx
Scherwinkel für x- gegen y-Achse
q0
Quaternion, nullte Komponente
τxz
Scherwinkel für z- gegen x-Achse
q1
Quaternion, erste Komponente
τzx
Scherwinkel für x- gegen z-Achse
q2
Quaternion, zweite Komponente
τyz
Scherwinkel für z- gegen y-Achse
q3
Quaternion, dritte Komponente
τzy
Scherwinkel für y- gegen z-Achse
sind alle relevanten Transformationstypen darstellbar. Insgesamt können bis zu 13
elementare Schritte beliebig kombiniert werden. Diese werden in der gegebenen Reihenfolge
abgearbeitet. Es ist z.B. möglich, nach einer Translation und einer Rotation eine weitere
Translation folgen zu lassen.
Die Spiegelung wird automatisch dann vollzogen, wenn das Quellsystem ein Linkssystem und
das Zielsystem ein Rechtssystem ist oder umgekehrt. In vielen Fällen hängt das Transformationsergebnis von der
Reihenfolge der Transformationsschritte ab.
Die Transformationsschritte, die die z-Koordinate einbeziehen, erfordern,
dass alle Punkte drei Koordinaten besitzen.
Bei ebenen Transformationen können zwei Translationsparameter tx , ty,
bei räumlichen Transformationen drei Translationsparameter tx , ty , tz
gegeben werden. Diese werden in der natürlichen Längeneinheit
erwartet, also bei Gittersystemen ohne Gittermaßstab. Ist das hingegen anders gewünscht,
müssen Gittersysteme in kartesische Systeme umdeklariert werden, siehe Trickkiste.
Fehlende Translationsparameter gelten als Null.
Maßstabsparameter sind Maßstabsfaktoren, mit denen die Koordinaten multipliziert werden.
Bei ebenen Transformationen werden bis zu zwei Maßstabsparameter mx , my
, bei räumlichen Transformationen werden bis zu drei Maßstabsparameter mx , my , mz
akzeptiert. Alle Maßstabsparameter müssen positiv sein und schließen nicht die Gittermaßstabsfaktoren
ein. Ist das hingegen anders gewünscht, müssen Gittersysteme in kartesische Systeme umdeklariert werden, siehe Trickkiste.
Fehlende Maßstabsparameter gelten als Eins.
Die Transformationsgleichung der ebenen
Drehung lautet:
X
Y
=
cos(ε)
−sin(ε)
sin(ε)
cos(ε)
·
x
y
Bei allen räumlichen
Transformationen kann eine räumliche Drehung erfolgen, die auf die folgenden drei
verschiedenen Arten beschrieben werden kann:
(a) mit Euler-Winkelεx oder εy oder
εz:
X
Y
Z
=
1
0
0
0
cosεx
-sinεx
0
sinεx
cosεx
·
x
y
z
X
Y
Z
=
cosεy
0
sinεy
0
1
0
-sinεy
0
cosεy
·
x
y
z
X
Y
Z
=
cosεz
-sinεz
0
sinεz
cosεz
0
0
0
1
·
x
y
z
Die gesamte Drehung kann man in eine Folge von drei Drehungen um Koordinatenachsen
zerlegen. Jede Reihenfolge kann verwendet werden. Das Vertauschen von Drehungen
ändert normalerweise das Ergebnis.
(b) mit dem Quadrupel der Einheitsquaternion(q0 , q1 , q2 , q3).
Eine Quaternion erlaubt in vielen Fällen eine rechnerisch elegantere Beschreibung von
Drehungen in drei Dimensionen:
X
Y
Z
=
q0²+q1²- q2²−q3²
2(q1·q2−q0·q3)
2(q1·q3+q0·q2)
2(q1·q2+q0·q3)
q0²−q1²+q2²−q3²
2(q2·q3−q0·q1)
2(q1·q3−q0·q2)
2(q2·q3+q0·q1)
q0²−q1²−q2²+q3²
·
x
y
z
Sollte keine Einheitsquaternion mit q0²+q1²+q2²+q3²=1
gegeben werden, wird diese normiert.
(c) mit Euler-Achse(ex ,
ey , ez) als Einheitsvektor und Rotationswinkelε um diese Achse:
X
Y
Z
=
cosε+ex²(1-cosε)
exey(1-cosε)-ezsinε
exez(1-cosε)+eysinε
exey(1-cosε)+ezsinε
cosε+ey²(1-cosε)
eyez(1-cosε)-exsinε
exez(1-cosε)-eysinε
eyez(1-cosε)+exsinε
cosε+ez²(1-cosε)
·
x
y
z
Die Rotation wird hier um eine schräg im Raum liegende Achse durch den Koordinatenursprung
beschrieben, die sogenannte Euler-Achse. Sollte die Richtung dieser Achse nicht als
Einheitsvektor mit ex²+ey²+ez²=1
gegeben werden, wird dieser normiert.
Alle Winkel ε, εx, εy,
εz werden zwischen -π = -180° = -200 gon und π = 180° = 200 gon
und in der gewählten Winkeleinheit erwartet. Sie sind
bei Linkssystemen positiv im Uhrzeigersinn,
bei Rechtssystemen positiv gegen den Uhrzeigersinn
definiert. Der Blick ist hierfür entgegen der Drehachse gerichtet.
Es sind auch andere Festlegungen gebräuchlich, vor allem in
nicht-geodätischen Bereichen.
Sowohl die Parameter q0, q1, q2, q3,
als auch die Parameter ex, ey, ez, ε
bilden eine Einheit und müssen in der Liste der Transformationsparameter alle vier
aufeinander folgen, wobei die Reihenfolge innerhalb der Gruppe beliebig ist.
Die Scherung ist eine affine Abbildung der Ebene auf sich selbst, bei der der Inhalt von
geometrischen Flächen erhalten bleibt, Winkel sich jedoch ändern. Die Transformationsgleichungen lauten:
X
Y
=
1
fxy
0
1
·
x
y
X
Y
Z
=
1
fxy
0
0
1
0
0
0
1
·
x
y
z
X
Y
Z
=
1
0
fxz
0
1
0
0
0
1
·
x
y
z
X
Y
Z
=
1
0
0
fyx
1
0
0
0
1
·
x
y
z
X
Y
=
1
0
fyx
1
·
x
y
X
Y
Z
=
1
0
0
0
1
fyz
0
0
1
·
x
y
z
X
Y
Z
=
1
0
0
0
1
0
fzx
0
1
·
x
y
z
X
Y
Z
=
1
0
0
0
1
0
0
fzy
1
·
x
y
z
fxy=tan(τxy) fxz=tan(τxz) fyz=tan(τyz)
Entweder die Scherparameter f
oder die Scherwinkel τ
können angegeben werden. Alle Winkel werden zwischen -π/2 = -90° = -100 gon und π/2 = 90° = 100 gon
und in der gewählten Winkeleinheit erwartet. Fehlende Scherparameter gelten als Null.
Hinweis: Zwei aufeinanderfolgende Scherungen mit f=fyx=-fxy ≠ 0
ergeben nicht dasselbe wie eine Drehung mit τ=arctan(f). Die Winkel bleiben nicht erhalten:
Alternativ zu den Euler-Winkeln εx , εy , εz
werden auch eine Quaternion (q0 , q1 , q2 , q3)
oder Euler-Achse (ex , ey , ez) und Rotationswinkel ε
um diese Achse akzeptiert.
Die folgenden Punkte mit Koordinaten in einem kartesischen Linkssystem
bilden die Eckpunkte eines Quaders (ABCD=Grundfläche, EFGH=Deckfläche):
X Y Z
A 14.034 17.043 8.067
B 23.605 29.759 5.522
C 42.146 16.239 7.807
D 32.585 3.537 10.349
E 14.281 20.222 24.877
F 23.842 32.924 22.335
G 42.393 19.418 24.617
H 32.841 6.711 27.167
Dieser soll um 45° um seine Mittelachse parallel zu AE (⇑ Abbildung)
von oben gesehen entgegen dem Uhrzeigersinn gedreht werden.
Der bei der Drehung festzuhaltende Punkt könnte der Mittelpunkt M des Quaders
M 28.2159 18.2316 16.3426
berechnet aus dem Mittel aller Koordinaten z.B. mit
sein, oder auch der Mittelpunkt der Grund- oder Deckfläche sein. Die Euler-Achse e wird durch den Vektor
AE=
14.281-14.034
20.222-17.043
24.877-8.067
beschrieben. Weil bei Linkssystemen und Blickrichtung entgegen der Drehachsrichtung
der Rotationswinkel positiv im Uhrzeigersinn definiert ist (⇑ Rotation = Drehung),
muss der Rotationswinkel ε=−45°
eingegeben werden. Alternativ könnte auch EA statt AE als Achsvektor verwendet werden. Dann wäre ε = 45° zu setzen.
Das Ergebnis ist
X
Y
Z
=
-2.33842866
23.6949266
-4.44667340
+
0.70716782
0.69550488
-0.12722668
-0.69393365
0.71721800
0.06367434
0.13553508
0.04325843
0.98982774
.
x
y
z
PName
X
Y
Z
A
18.4131166747
26.6934690300
6.1776196987
B
34.3492519040
29.0099229729
5.5057885573
C
37.7669114811
6.5924075628
9.6956467711
D
21.8479666784
4.2788643123
10.3664693981
E
18.6601166747
29.8724690300
22.9876196987
F
34.5790614774
32.1860122804
22.3167970717
G
38.0139114811
9.7714075628
26.5056467711
H
22.0968358509
7.4485422141
27.1853915435
Führen Sie mit diesen Koordinatenlisten eine
durch. Alle Restklaffungen müssen Null sein, unabhängig von der Gewichtung.
Schon gewusst?
Sie müssen sich bei IN DUBIO PRO GEO nicht anmelden, deshalb arbeiten Sie anonym.