Opis
Klasa Matrix reprezentuje macierz przekształcenia współrzędnych punktów z jednego układu współrzędnych do innego.
Można zmodyfikować wygląd obiektu ekranowego w następujący sposób:
- Ustawianie właściwości obiektu Matrix.
- Stosowanie obiektu Matrix do właściwości macierzy obiektu Transform.
- Stosowanie obiektu Transform jako właściwości przekształcenia obiektu ekranowego.
Do funkcji przekształceń należą translacja (zmiana współrzędnych x i y), obrót i skalowanie.
Macierze przekształceń
Przekształcenia te są określane zbiorczo jako przekształcenia afiniczne. Przekształcenia afiniczne zachowują linie proste i równoległość linii.
Obiekt macierzy przekształcenia zawiera macierz 3 x 3 z następującymi wartościami:
| a c tx | | b d ty | | u v w |
W tradycyjnych macierzach przekształceń właściwości u, v i w udostępniają dodatkowe możliwości. Klasa Matrix działa jednak tylko w przestrzeni dwuwymiarowej. Zawsze jest w niej przyjmowane założenie, że wartości u i v wynoszą 0,0, a wartość w wynosi 1,0. W efekcie macierz przyjmuje następującą postać:
| a c tx | | b d ty | | 0 0 1 |
Składnia
new flwebgl.geom.Matrix(values)
Parametry
Nazwa | Typ | Opis |
---|---|---|
wartości | number[] | (Opcjonalny) Tablica definiująca wartości macierzy w formacie [a b c d tx ty]. Jeśli nie jest określony, jest definiowana macierz jednostkowa. |
Metody
clone()
Opis
Ta metoda zwraca sklonowane wystąpienie klasy Matrix.
Zwraca
- Sklonowane wystąpienie klasy Matrix.
- Typ: Matrix
concat(macierz)
Opis
Ta metoda tworzy konkatenację podanej macierzy z macierzą bieżącą, co skutkuje połączeniem efektów geometrycznych dwóch macierzy.
Parametry
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
Przykład
Ten przykładowy kod wykonuje konkatenację macierzy obracającej z macierzą skalującą.
Nazwa | Typ | Opis |
---|---|---|
macierz | Matrix | Macierz do pomnożenia . |
var m1 = new flwebgl.geom.Matrix(); m1.rotate(45 * Math.PI / 180); var m2 = new flwebgl.geom.Matrix(); m2.scale(2, 2); m1.concat(m2);
copy(macierz)
Opis
Ta metoda kopiuje podaną macierz do tej macierzy.
Parametry
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
Nazwa | Typ | Opis |
---|---|---|
macierz | Matrix | Macierz, z której będą kopiowane właściwości. |
equals(mat)
Opis
Ta metoda sprawdza, czy podana macierz ma takie same wartości jak dane wystąpienie.
Parametry
Zwraca
- Typ: boolean
Nazwa | Typ | Opis |
---|---|---|
mat | Matrix | Macierz do porównania. |
getValues()
Opis
Ta metoda zwraca wartości elementów macierzy.
Zwraca
- Tablica definiująca wartości macierzy w formacie [a b c d tx ty].
- Typ: number[]
Przykład
Ten przykładowy kod pobiera wartości macierzy i zmienia ją w celu skrzywienia o wartość 0,5.
var m = new flwebgl.geom.Matrix(); var arr = m.getValues(); arr[1] = 0.5; m.setValues(arr);
identity()
Opis
Ta metoda ustawia macierz jako macierz jednostkową.
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
invert()
Opis
Ta metoda odwraca macierz, co skutkuje zastosowaniem macierzy przekształcenia odwrotnego.
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
isIdentity()
Opis
Ta metoda zwraca wartość true, jeśli macierz jest macierzą jednostkową.
Zwraca
- Typ: boolean
rotate(kąt)
Opis
Ta metoda stosuje do macierzy przekształcenie: obrót.
Parametry
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
Przykład
Ten przykładowy kod tworzy nowe wystąpienie klasy Matrix zainicjowane jako macierz jednostkowa i obraca je o 45 stopni.
Nazwa | Typ | Opis |
---|---|---|
kąt | number | Kąt w radianach. Aby użyć stopni, należy pomnożyć wartość przez Math.PI/180. |
var m = new flwebgl.geom.Matrix(); m.rotate(45 * Math.PI / 180);
scale(x, y)
Opis
Ta metoda stosuje do macierzy przekształcenie: skalowanie.
Parametry
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
Przykład
Ten kod przykładowy tworzy nowe wystąpienie klasy Matrix zainicjowane jako macierz jednostkowa i skaluje je — powiększa dwukrotnie w poziomie i pionie.
Nazwa | Typ | Opis |
---|---|---|
x | number | Współczynnik skalowania w poziomie. |
y | number | Współczynnik skalowania w pionie. |
var m = new flwebgl.geom.Matrix(); m.scale(2, 2);
setValues(wartości)
Opis
Ta metoda ustawia wartości elementów macierzy.
Parametry
Przykład
Zobacz przykład dla metody getValues().
Nazwa | Typ | Opis |
---|---|---|
wartości | number[] | Tablica definiująca wartości macierzy w formacie [a b c d tx ty]. |
transformPoint(punkt)
Opis
Ta metoda przekształca punkt zgodnie z daną macierzą.
Parametry
Zwraca
- Przekształcony punkt.
- Typ: Point
Nazwa | Typ | Opis |
---|---|---|
point | Point | Punkt do przekształcenia. |
transformRect(prostokąt)
Opis
Ta metoda przekształca wszystkie cztery punkty prostokąta zgodnie z daną macierzą.
Parametry
Zwraca
- Przekształcony obiekt Rect.
- Typ: Rect
Nazwa | Typ | Opis |
---|---|---|
rect | Rect | Prostokąt do przekształcenia. |
translate(dx, dy)
Opis
Ta metoda realizuje translację macierzy wzdłuż osi x i y.
Parametry
Zwraca
- Ta macierz. Ułatwia łańcuchowe łączenie wywołań.
- Typ: Matrix
Nazwa | Typ | Opis |
---|---|---|
dx | number | Przesunięcie w prawo wzdłuż osi X. |
dy | number | Przesunięcie w dół wzdłuż osi Y. |