Matrix

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.

 Adobe

Få hjälp snabbare och enklare

Ny användare?