Beskrivning
Klassen Matrix representerar en transformeringsmatris som styr hur punkter från ett koordinatsystem mappas till ett annat.
Du kan utföra flera olika grafiska omformningar på ett visningsobjekt, enligt följande:
- Ange egenskaper för ett Matrix-objekt
- Använda det Matrix-objektet på egenskapen matrix för ett Transform-objekt
- Använda Transform-objektet som egenskapen transform för visningsobjektet.
Dessa omformningsfunktioner inkluderar översättning (omplacering av x och y), rotation och skalning.
Omformningsmatriser
Tillsammans kallas dessa omformningstyper affina omformningar. Affina omformningar bevarar linjernas rakhet vid omformning, så att parallella linjer förblir parallella.
Ett omformningsmatrisobjekt är en 3 x 3-matris med följande innehåll:
| a c tx | | b d ty | | u v w |
I traditionella omformningsmatriser innehåller egenskaperna u, v och w extra funktioner. Klassen Matrix fungerar bara i en tvådimensionell rymd. Den förutsätter alltid att egenskapsvärdena u och v är 0.0, och att egenskapsvärdet w är 1.0. Matrisens faktiska värden är som följer:
| a c tx | | b d ty | | 0 0 1 |
Syntax
new flwebgl.geom.Matrix(values)
Parametrar
Namn | Typ | Beskrivning |
---|---|---|
values | tal[] | (valfritt) En array som definierar värdena för matrisen i formatet [a b c d tx ty]. Om inget anges anges matrisen som 'identity'. |
Metoder
clone()
Beskrivning
Den här metoden returnerar en klon av Matrix-instansen
Returnerar
- En klon av Matrix-instansen.
- Typ – Matrix
concat(matrix)
Beskrivning
Den här metoden sammanfogar den angivna matrisen med den aktuella matrisen, så att de två matrisernas geometriska effekter kombineras.
Parametrar
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
Exempel
Det här exemplet sammanfogar en rotationsmatris och en skalningsmatris.
Namn | Typ | Beskrivning |
---|---|---|
matrix | Matrix | Den matris som ska multipliceras |
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(matrix)
Beskrivning
Den här metoden kopierar angiven matris till denna matris.
Parametrar
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
Namn | Typ | Beskrivning |
---|---|---|
matrix | Matrix | Den matris från vilken egenskaper ska kopieras |
equals(mat)
Beskrivning
Den här metoden kontrollerar om den angivna matrisen har samma värden som den här instansen.
Parametrar
Returnerar
- Typ – boolesk
Namn | Typ | Beskrivning |
---|---|---|
mat | Matrix | Den matris som ska jämföras |
getValues()
Beskrivning
Den här metoden returnerar värdena för elementen i matrisen.
Returnerar
- En array som definierar värdena för matrisen i formatet [a b c d tx ty]
- Typ – tal[]
Exempel
Det här exemplet hämtar värdena för en matris och ändrar den så att den skevas med faktorn 0,5.
var m = new flwebgl.geom.Matrix(); var arr = m.getValues(); arr[1] = 0.5; m.setValues(arr);
identity()
Beskrivning
Den här metoden anger matrisen till en identity-matris.
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
invert()
Beskrivning
Den här metoden inverterar matrisen, så att den inverterade matrisen i princip använder motsatt omformning.
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
isIdentity()
Beskrivning
Den här metoden returnerar 'true' om matrisen är en identity-matris.
Returnerar
- Typ – boolesk
rotate(angle)
Beskrivning
Den här metoden använder en rotationsomformning på matrisen.
Parametrar
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
Exempel
Det här exemplet skapar en ny Matrix-instans, som initieras till identity-matrisen, och roterar den 45 grader.
Namn | Typ | Beskrivning |
---|---|---|
angle | tal | Vinkeln i radianer. Om du vill använda grader multiplicerar du med Math.PI/180. |
var m = new flwebgl.geom.Matrix(); m.rotate(45 * Math.PI / 180);
scale(x, y)
Beskrivning
Den här metoden använder en skalningsomformning på matrisen.
Parametrar
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
Exempel
Det här exemplet skapar en ny Matrix-instans, som initieras till identity-matrisen, och skalar den med faktorn 2 både vågrätt och lodrätt.
Namn | Typ | Beskrivning |
---|---|---|
x | tal | Den vågräta skalningsfaktorn. |
y | tal | Den lodräta skalningsfaktorn. |
var m = new flwebgl.geom.Matrix(); m.scale(2, 2);
setValues(values)
Beskrivning
Den här metoden anger värdena för elementen i matrisen.
Parametrar
Exempel
Se exemplet under funktionen getValues().
Namn | Typ | Beskrivning |
---|---|---|
values | tal[] | En array som definierar värdena för matrisen i formatet [a b c d tx ty]. |
transformPoint(point)
Beskrivning
Den här metoden omformar en punkt enligt den här matrisen.
Parametrar
Returnerar
- Den omformade punkten.
- Typ – Point
Namn | Typ | Beskrivning |
---|---|---|
point | Point | Den punkt som ska omformas. |
transformRect(rect)
Beskrivning
Den här metoden omformar rektangelns alla fyra punkter enligt den här matrisen.
Parametrar
Returnerar
- Den omformade rektangeln.
- Typ – Rect
Namn | Typ | Beskrivning |
---|---|---|
rect | Rect | Den rektangel som ska omformas. |
translate(dx, dy)
Beskrivning
Den här metoden översätter matrisen på x- och y-axlarna.
Parametrar
Returnerar
- Denna matris. Praktiskt om du vill länka metodanrop.
- Typ – Matrix
Namn | Typ | Beskrivning |
---|---|---|
dx | tal | Mängden rörelse längs X-axeln åt höger. |
dy | tal | Mängden rörelse nedåt längs Y-axeln. |