Udostępnij za pomocą


Skalowanie

Większość aplikacji CAD i rysunku udostępnia funkcje, które umożliwiają skalowanie danych wyjściowych utworzonych przez użytkownika. Aplikacje, które obejmują funkcje skalowania (lub powiększenia), wywołują funkcję SetWorldTransform, aby ustawić odpowiednią transformację z przestrzeni światowej na przestrzeń stronicową. Ta funkcja otrzymuje wskaźnik do struktury XFORM zawierającej odpowiednie wartości. Członkowie eM11 i eM22 w XFORM odpowiednio określają składniki skalowania poziomego i pionowego.

Podczas skalowania pionowe i poziome linie (lub wektory), które stanowią obiekt, są rozciągane lub kompresowane względem osi x lub y. Na poniższej ilustracji przedstawiono prostokąt o wymiarach 20 na 20 jednostek, skalowany pionowo, aby osiągnąć dwukrotność swojej pierwotnej wysokości podczas kopiowania z przestrzeni współrzędnych świata do przestrzeni współrzędnych strony.

ilustracja przedstawiająca mały prostokąt w przestrzeni światowej i wyższy prostokąt w przestrzeni strony

Na poprzedniej ilustracji pionowe linie definiujące boki oryginalnego prostokąta mierzą 20 jednostek, podczas gdy pionowe linie definiujące boki przeskalowanego prostokąta mierzą 40 jednostek.

Skalowanie w pionie może być reprezentowane przez następujący algorytm.

y' = y * Dy 

Gdzie y jest nową długością, y jest oryginalną długością, a Dy jest czynnikiem skalowania w pionie.

Skalowanie w poziomie może być reprezentowane przez następujący algorytm.

x' = x * Dx 

Gdzie x' jest nową długością, x jest oryginalną długością, a Dx jest współczynnikiem skalowania w poziomie.

Przekształcenia skalowania w pionie i w poziomie można łączyć w jedną operację przy użyciu macierzy 2-by-2.

|x' y'|  =  |Dx   0|  *  |x y| 
            |0   Dy| 

Macierz 2-by-2, która wygenerowała transformację skalowania, zawiera następujące wartości.

|1    0| 
|0    2|