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

NazwaTypOpis
wartościnumber[](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ą.

NazwaTypOpis
macierzMatrix
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
NazwaTypOpis
macierzMatrixMacierz, 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
NazwaTypOpis
matMatrixMacierz 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.

NazwaTypOpis
kątnumberKą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.

NazwaTypOpis
xnumberWspółczynnik skalowania w poziomie.
ynumberWspół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().

NazwaTypOpis
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
NazwaTypOpis
pointPointPunkt 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
NazwaTypOpis
rectRect
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
NazwaTypOpis
dxnumberPrzesunięcie w prawo wzdłuż osi X.
dynumberPrzesunięcie w dół wzdłuż osi Y.

Ta zawartość jest licencjonowana na warunkach licencji Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Posty z serwisów Twitter™ i Facebook nie są objęte licencją Creative Commons.

Informacje prawne   |   Zasady prywatności online