2.2 Transformation
von Geometrie-Elementen
Geometrie-Elemente dienen zur Darstellung von Gleisen. Soll nun ein Gleis
transformiert werden, so muss dazu die Transformation auf jedes Geometrie-Element
angewandt werden. Es kommen nur zwei Arten von Transformationen in Frage:
Die Translation und die Rotation. Andere Transformationen wie Skalierung
oder Scherung sind irrelevant und müssen nicht betrachtet werden.
2.2.1 Translation
Unter der Translation versteht man eine Verschiebung des Elementes in x-
und y-Richtung. Dazu müssen lediglich die Koordinaten des Startwertes
neu berechnet werden.
Es ergibt sich folgende Matrixoperation:
oder aufgelöst:
x' = x + dx
y' = y + dy
Die homogene Komponente braucht nicht beachtet zu werden, da weder Translation
noch Rotation sie beeinflussen. Sie wird hier nur der Vollständigkeit
halber angegeben.
2.2.2 Rotation
Neben einer Translation müssen Geometrie-Elemente geeignet gedreht
werden. Es treten zwei Arten von Rotationen auf.
2.2.2.1 Rotation um den Ursprung
Der einfache Fall ist die Rotation um den Ursprung.
Es ergibt sich folgende Drehmatrix.
oder aufgelöst:
x' = cosq * x - sinq
* y
y' = sinq * x + cosq
* y
Auch hier braucht die homogene Komponente nicht berücksichtigt zu
werden. Für die Geometrie-Elemente müssen die Koordinaten der
Startpunkte neu berechnet werden. Der neue Richtungswinkel a'
ergibt sich aus der Summe von a und
q. Die Längen und Radien der Geometrie-Elemente werden von
der Rotation nicht beeinflußt.
2.2.2.2 Rotation um einen
beliebigen Punkt
Um Geometrie-Elemente geeignet zu platzieren genügt es in den seltensten
Fällen, diese um den Koordinatenursprung zu drehen. Oft müssen
sie um einen beliebigen Punkt gedreht werden. Dazu ist folgende Vorgehensweise
notwendig:
-
Verschieben des Koordinatensystems in den Drehpunkt (M1)
-
Drehung um den Ursprung des neuen Koordinatensystems (M2)
-
Translation wieder zurück (M3)
Durch Multiplikation der drei Matrizen ergibt sich die Transformationsmatrix.
Es ist auf die Reihenfolge bei der Matrizenmultiplikation zu achten. Sie
ist nicht kommutativ und eine Vertauschung der Matrizen führt zu falschen
Ergebnissen. Der Drehpunkt hat die Koordinaten (x1, y1)
M = M3 * M2 * M1 = **
oder aufgelöst:
x' = x1 + cosq * (x - x1) - sinq
* (y - y1)
y' = y1 + sinq * (x - x1) + cosq
* (y - y1) Die Formel wurde nachträglich korrigiert!