Transformation - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Transformation

Description:

Transformation Grafische Bildverarbeitung Vortrag: Kenny Schl r 29.11.1999 Theorie:Einf hrung in die zwei- und drei-dimensionalen Transformation. – PowerPoint PPT presentation

Number of Views:245
Avg rating:3.0/5.0
Slides: 22
Provided by: Ken7174
Category:

less

Transcript and Presenter's Notes

Title: Transformation


1
Transformation
  • Grafische Bildverarbeitung
  • Vortrag Kenny Schlör
  • 29.11.1999

2
TheorieEinführung in die zwei- und
drei-dimensionalen Transformation.
  • Transformation ist ein Teilgebiet in der
    linearen Algbra.
  • Siehe LAII.
  • Die Transformationen kommen direkt in
    Anwendungsprogrammen und innerhalb vieler
    Graphikpakete zum Einsatz.Eine Applikation zur
    Stadtplanung würde mit einer Translation die
    Symbole für Gebäude und Bäume an die richtigen
    Stellen bringen ,die Symbole mit einer Rotation
    ausrichten und sie durch Skalierung auf die
    richtige Größe bringen.Im allgemeinen benutzen
    viele Applikationen die geometrische
    Transformation,um Position,Orientierung und Größe
    von Objekten in einer Zeichnung zu ändern.

3
Formen der Transformationen in Graphikpaketen
  • Translation(Verschiebung)
  • Punkte werden mittels der Translation in einer
    Ebene (zweidimensionale Transformation) mittels
    eines gewünschten Betrages der Verschiebungen zu
    den Koordinaten addiert.
  • Ein Punkt beispielsweise P(x,y) wird um dx
    Einheiten parallel zur X-Achse und um dy
    Einheiten parallel zur Y-Achse auf den neuen
    Punkt P(x,y)verschoben. x x dx
    , y y dy
    P P T
  • Um eine Linie zu verschieben brauchen wir nur die
    Endpunkte zu verschieben.Dies gilt auch für die
    Skalierung(Vergrößerung oder Verkleinerung) und
    Drehung.


4
Formen der Transformationen in Graphikpaketen
  • Skalieren (dehnen oder strecken)
    Es
    gibt zwei Skalierungsarten
  • die uniforme oder gleichmäßige Skalierung,wo die
    Skalierungsfaktoren gleich sind,also sx sy.Die
    Proportionen bleiben beim Objekt erhalten.
  • Skalierung mit unterschiedliche
    Skalierungsfaktoren sx? sy x
    sx x ,ysy y

5
Formen der Transformationen in Graphikpaketen
  • Drehung Punkte können um einen Winkel 0 um den
    Ursprung gedreht werden(Rotation). Einen Drehung
    wird mathematisch definiert durch die
    Gleichungen x x cos q -ysin q,
    y x sin q y cos q
  • oder P R P, wobei R die Drehungsmatrix in
    Matrixgleichung ist.Wie die Skalierung bezieht
    sich auch die Drehung auf den Ursprung.
  • Positive Winkel werden gegen den Uhrzeigersinn
    von x nach y gemessen.Für negative Winkel(Also im
    Uhrzeigersinn) können wir die Gleichungen mit
    Hilfe der Identitäten cos(-q)cos q und
    sin(-q)-sinq umschreiben.

6
Formen der Transformationen in Graphikpaketen
  • Wir können bei einer Überführung von P(x,y) um
    Winkel p in den Punkt P(x,y) leicht ableiten.
    Da wir um den Ursprung drehen, sind die Abstände
    von P und P zum Ursprung gleich. x
    rcos p, y r sin p und xrcos(p
    q)r cos q cos p - rsin qsin p yrsin
    (p q)r cos qsin p rsin qcos p

7
Homogene Koordinaten und Matrizen-darstellung von
2D-Transformationen
  • Die Translation wird im vergleich zu Skalierung
    und Rotation auf eine andere Weise
    dargestellt.Man strebt zu einer einheitlichen
    Behandlung aller Transformationen,damit sie
    leichter kombiniert werden können.
  • Dafür werden die Punkte in homogene Koordinaten
    ausgedrückt.Die Transformationen können über die
    Multiplikation behandelt werden.
  • Homogene Koordinaten wurden zuerst in der
    Geometrie dargestellt und dann später auf die
    Graphik angewandt.
  • Jeder Punkt bekommt eine dritte
    Koordinate. P(x,y,W) ein Tripel

8
Homogene Koordinaten und Matrizen-darstellung von
2D-Transformationen
  • Homogene Punkte (x,y,W) und (x,y,w) sind genau
    dann gleich, wenn der eine Punkt das Vielfache
    des anderen ist. Ein Punkt hat daher viele
    Verschieden Darstellungen in homogenen
    Koordinaten.Sie stehen für Punkte im
    zweidimensionalen Raum.
  • Eine der Koordinaten muss ungleich null
    sein.(0,0,0) ist nicht gültig.
  • Wenn W ungleich null ist , so wird durch W
    normalerweise dividiert.
  • Die Zahlen x/W und y/W sind die kartesischen
    Koordinaten des homogenen Punktes.
  • Die Punkte mit W 0 heissen Punkte im
    Unendlichen.

9
Homogene Koordinaten und Matrizen-darstellung von
2D-Transformationen
  • Mit der Form (tx,ty,tW) mit t ? 0 erhalten Wir
    eine Gerade im 3D-Raum, daher steht jeder
    homogene Punkt für eine Gerade .
  • Homogenisieren wir den Punkt(Division durch W)
    erhalten wir (x,y,1).Dieser Punkt bildet eine
    Ebene mit W1 im (x,y,W)-System.
  • Punkte im unendlichen werden auf dieser Ebene
    nicht dargestellt.
  • Die Punkte sind jetzt also dreielementige
    Spaltenvektoren. Die Transformationsmatrizen ,die
    bei der Multiplikation mit einem Punktvektor
    einen anderen Punktvektor liefern, haben die
    Grösse einer 3x3-Matrix.

10
Konventionen Transformationsmatrizen
  • Um Zeilenvektoren von links an die Matrix zu und
    Spaltenvektoren von rechts zu an die Matrix zu
    multiplizieren werden die Matrizen
    transponiert. (PM)T MT
    PT oder P(T(dx,dy) P
  • TranslationWenn ein Punkt P mit der
    Translationsmatrix T(dx1,dy1) nach P verschoben
    wird und anschliessend mit T(dx2,dy2) setzt
    sich das Matrizenprodukt als Komposition additiv
    zusammen.
  • Aufeinander folgende Skalierung sind
    multiplikativ.
  • Aufeinander folgende Rotation sind additiv.

11
Betrachtung der linken oberen 2x2-Teilmatrix bei
der Rotation
  • Jede der beiden Zeilen werden asl Vektor drei
    Eigenschaften zugewiesen.
  • 1. Beide sind Einheitsvektoren.
  • 2. Die beiden Vektoren stehen senkrecht
    aufeinander.
  • 3. Rotiert man die beiden Vektoren um R(P), so
    kommen sie auf die positive x- bzw y-Achse zu
    liegen(zusammen mit den Eigenschaften 1 und 2 ist
    dies äquivalent dazu, dass die Determinate der
    Teilmatrix den Wert 1 hat).
  • Eine Matrix mit diesen Eigenschaften nennt man
    spezielle orthogonale Matrix.

12
Ähnlichkeitstransformationen und
affine Transformationen
  • Diese Matrix erhält Längen und Winkel,sie werden
    Ähnlichkeitstransformationen genannt,da sie das
    Transformierte Objekt nicht verzerren.
  • Durch eine beliebige Folge von Rotations- und
    Transformations-matrizen entsteht eine Matrix
    dieser Form
  • Platz für die Matrixsiehe Tafel!!
  • Ein Produkt einer beliebigen Folge von
    Rotations-,Translations- und Skalierungsmatrizen
    liefert eine affine Transformation.
  • Parallelität von Linien werden erhalten jedoch
    nicht die Längen und Winkel.
  • Zustäzliche Rotation,Skalierung und Translation
    erhalten die Parallelität.

13
Die speziele affine TransformationScherung
  • Der Term a bei SHx und der Term b bei SHy sind
    die Proportionaltätskonstanten.

14
Zusammengesetzte zweidimensionale Transformationen
  • Zusammengesetzte Transformationen sind
    effektiver, als wenn wir einzelne
    Transformationen nacheinander ausführen.
  • Die Basismatrizen R,S und T werden kombiniert.
  • Beispiel(Rotation)
  • Verschiebe P1 zum Ursprung.
  • Rotiere.
  • Verschiebe so, dass der Punkt im Ursprung zu P1
    zurückkehrt.
  • Beispiel(Skalierung )
  • Verschiebe P1 zum Ursprung.
  • Skalieren
  • Verschiebe zurück zu P1

15
Effizienz
  • Die allgemeinste Komposition von
    Rotation,Skalierung und Translation ergibt eine
    Matrix der Form
  • Siehe Tafel
  • Die obere 2x2 Teilmatrix ist die zusammensetzung
    von Rotation und Skalierung und tx und ty sind
    die Komponenten der Translation.
  • Da die letzte Zeile der Gleichung konstant ist,
    sind nur folgende Operationen nötig
  • x xr11yr12 tx,
  • y xr21 yr22 ty

16
Effizienz
  • Diese Matrix brauch also nur vier
    Multiplikationen und vier Additionen .
  • Dies ist einen beträchtliche Beschleunigung,wenn
    man bedenkt, dass diese Operation pro Bild auf
    Hundert oder gar Tausende von Punkten angewandt
    wird.

17
Umsetzung in Java Die Klasse AffineTransform
  • Konstruktor
  • AffineTransform()
  • AffineTransform(AffineTransform Tx)
  • Erzeugt ein neues Objekt AffineTransform ,dass
    eine Kopie von der allgemeinen Matrix ist.
  • AffineTransform(double flatmatrix) Erzeugt
    ein neues AffineTransform-Objekt mit einem Feld
    von Doublewerten. 4 Einträgen repräsentieren die
    Transformation ohne Translation oder alle 6 die
    allgemeine Transformationsmatrix.
  • AffineTransform(double m00,double m10,double
    m01,double m11, double m02,double
    m12) Erzeugt ein neues Objekt AffineTransform
    von 6 spezifischen Doubelwerten,die die 6
    Einträge in die allgemeinen Form
    darstellen.(Anlog mit Float)

18
Methoden von AffineTransform
  • public void getMatrix(double flatmatrix)
  • Übergibt 6 Werte in die 3x3-Matrix und plaziert
    sie in einem DoubleFeld.
  • public static AffineTransform getRotateInstance
    (double theta)
  • Gibt eine Rotationstransformation zurück.
  • public static AffineTransform getRotateInstance(d
    ouble theta, double x,doubel y)
  • Gibt eine Rotationstransformation um einen
    beliebigen festen Punkt zurück
  • public static AffineTransform(double sx,double
    sy)
  • Gibt eine Skalierungstransformation zurück.

19
Methoden von der Klasse AffineTransform
  • public doubel getScaleX()
  • Gibt den Skalierungsfaktor in Richtung der
    X-Koordinate zurrück.Der Faktor steht bei der
    allgemeinen Transformationsmatrix an der Stelle
    (m00). (Analog Y-Koordinate)
  • public static AffineTransform getTranslateInstance
    (double tx, double ty)
  • Gibt die Transformation für die Translation
    zurück.
  • public double getTranslateX()
  • Gibt die X-Koordinate der Translation ,das
    Element (m02) von der allgemeinen
    Transformationsmatrix zurück.(Analog
    Y-Koordinate)

20
Methoden der Klasse AffineTransform
  • void transform(double scrPts, int scrOff,
    double dstPts, int dstOff, int numPts)
  • Diese Methode transformiert ein Feld von
    Koordinaten.Diese Methode sichert ,das keine
    Quell-Daten von einer früheren Operation
    überschrieben wird,bevor die Quell-Daten
    transformiert sind.
  • Die Parameter
  • scrPts Dieses Feld beinhaltet die
    UrsprungsKoordinate.
  • dstPts Dieses Feld beinhaltet die
    Zielkoordinaten
  • srcOff Der Anfang des ersten Punktes der
    Quelle, der transformiert wird.
  • dstOff Der Anfang des ersten Punktes des Zieles
    zu dem transponiert wird.
  • numPts- Die Nummer des transformierenden Punktes.

21
Methoden der Klasse AffineTransform
  • public void transform(double srcPts, int
    srcOff, float dstPts,int dstOff,int
    numPts)
  • Diese Methode transformiert ein Double-Feld und
    speichert das Ergebnis in ein Float-Feld.
  • public void transform(float srcPts, int
    srcOff, double dstPts,int dstOff,int
    numPts)
  • Diese Methode transformiert ein Float-Feld und
    speichert das Ergebnis in ein Double-Feld.
  • public void transform(float srcPts, int
    srcOff, float dstPts,int dstOff,int
    numPts)
Write a Comment
User Comments (0)
About PowerShow.com