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

NamnTypBeskrivning
valuestal[](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.  

NamnTypBeskrivning
matrixMatrix
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
NamnTypBeskrivning
matrixMatrixDen 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
NamnTypBeskrivning
matMatrixDen 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.

NamnTypBeskrivning
angletalVinkeln 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.

NamnTypBeskrivning
xtalDen vågräta skalningsfaktorn.
ytalDen 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().

NamnTypBeskrivning
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
NamnTypBeskrivning
pointPointDen 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
NamnTypBeskrivning
rectRect
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
NamnTypBeskrivning
dxtalMängden rörelse längs X-axeln åt höger.
dytalMängden rörelse nedåt längs Y-axeln.

Denna produkt är licensierad enligt en Creative Commons Erkännande-Ickekommersiell-Dela Lika 3.0 Unported-licens  Twitter™- och Facebook-inlägg omfattas inte av villkoren i Creative Commons-licensen.

Juridiska meddelanden   |   Onlinesekretesspolicy