prev up inhalt next

Skalierung

Vergrößerung bzw. Verkleinerung bzgl. eines Fixpunktes. Zunächst liege der Fixpunkt im Ursprung ($0,0$).

\begin{eqnarray*}
(x' , y' )& :=& (s_{x} \cdot x, s_{y} \cdot y)
\end{eqnarray*}



$s_{x} = s_{y} \Rightarrow$ uniforme Skalierung; $s_{x} \neq s_{y} \Rightarrow$ Verzerrung

Weder $s_x$ noch $s_y$ dürfen gleich $0$ sein. Sonst würde das 2D-Objekt in einer Dimension (oder gar beiden Dimensionen) auf die Ausdehnung $0$ zusammengestaucht. Die Objekte sind aber zweidimensional und sollen es im Laufe der Transformationen auch bleiben.


Abbildung 6.2: Skalierung mit $s_x=4$ und $s_y=2$

Abbildung 6.2 zeigt ein Beispiel für eine Skalierung bezüglich des Ursprungs mit den Faktoren $s_x=4$, $s_y=2$.

Bei Wahl eines beliebigen Fixpunktes $(Z_{x}, Z_{y})$ folgt für den Punkt $P$:

  1. Translation um $(-Z_{x}, -Z_{y} )$ liefert $P_1$.
  2. Skalierung mit $(s_{x}, s_{y})$ liefert $P_2$.
  3. Translation um $(Z_{x}, Z_{y})$ liefert $P_3 = P' $.

Die neuen Koordiaten berechnen sich dann wie folgt:

\begin{displaymath}
\Rightarrow (x', y') := ((x - Z_{x} ) \cdot s_{x} + Z_{x},
(y-Z_{y}) \cdot s_{y} +Z_{y})
\end{displaymath}

Vorteilhafter bei mehreren Objekten:

\begin{eqnarray*}
(x' , y')&=&(x \cdot s_{x} + d_{x}, y \cdot s_{y} + d_{y})\\
...
...d_{x} = Z_{x} \cdot (1 - s_{x}), d_{y} = Z_{y} \cdot (1 - s_{y})
\end{eqnarray*}



Abbildung 6.3 zeigt ein Beispiel für eine Skalierung bezüglich des Punktes $Z = (1, 3)$ mit den Faktoren $s_x = 3$, $s_y=2$.


Abbildung 6.3: Skalierung bzgl. Punkt (1,3) mit Faktoren $s_x = 3$ und $s_y=2$


prev up inhalt next