Digital Signal Processing Reference
In-Depth Information
Translation
,
Scaling
,
Shear
,
Rotation
(Klassen)
16.4
Java-Implementierung
Die Abbildungen
Translation
,
Scaling
,
Shear
und
Rotation
sind Sub-
klassen von
AffineMapping
. Die Definition dieser Klassen enthalt jeweils
nur die zugehorige Konstruktor-Methode, die ubrige Funktionalitat wird
aus den Superklassen
AffineTransform
bzw.
LinearTransform
abgelei-
tet. Der Aufruf
super()
bezieht sich auf die Konstruktor-Methode der
direkten Superklasse
AffineMapping
:
1
class Translation extends AffineMapping {
// s. Gl. 16.4
2
Translation (double dx, double dy) {
super(
3
1, 0, dx,
4
0, 1, dy,
5
false );
6
}
7
8
}
1
class Scaling extends AffineMapping {
// s. Gl. 16.5
2
Scaling(double sx, double sy) {
super(
3
sx, 0, 0,
4
0, sy, 0,
5
false );
6
}
7
8
}
1
class Shear extends AffineMapping {
// s. Gl. 16.6
2
Shear(double bx, double by) {
super(
3
1, bx, 0,
4
by, 1, 0,
5
false );
6
7
}
1
class Rotation extends AffineMapping {
// s. Gl. 16.8
2
Rotation(double alpha) {
super(
3
Math.cos(alpha), Math.sin(alpha), 0,
4
-Math.sin(alpha), Math.cos(alpha), 0,
5
false);
6
}
7
8
}
ProjectiveMapping
(Klasse)
Die Klasse
ProjectiveMapping
implementiert die projektive Abbildung
(Gl. 16.16). Sie stellt neben einer Konstruktor-Methode fur die Initilisie-
rung der 8 Abbildungsparameter
a
11
,a
12
,...a
32
(
a
33
=1)zweiMetho-
den zur Berechnung der Abbildung zwischen Vierecken zur Verfugung.