Matrix
Inheritance: java.lang.Object
public class Matrix
Ersätter GDI+ Matrix.
De flesta algoritmer hämtade från Suns AffineTransform.java. Javas namn för matriselement som används internt. Karta över java-namn till .net-namn till beskrivning: m00 M11 Skala X m10 M12 Skjuv Y m01 M21 Skjuv X m11 M22 Skala Y m02 M31 Översätt X m12 M32 Översätt Y
Konstruktörer
| Konstruktor | Beskrivning |
|---|---|
| Matrix() | Initierar en ny instans av Matrix-klassen som identitetsmatris. |
| Matrix(float m11, float m12, float m21, float m22, float m31, float m32) | Initierar en ny instans av Matrix-klassen. |
| Matrix(RectangleF rect, PointF[] plgpts) | Initierar en ny instans av Matrix-klassen till den geometriska transformationen som definieras av den angivna rektangeln och punktarrayen. |
| Matrix(Rectangle rect, Point[] plgpts) | Initierar en ny instans av Matrix-klassen till den geometriska transformationen som definieras av den angivna rektangeln och punktarrayen. |
| Matrix(Matrix origin) | Skapar en kopia av Matrix-klassen. |
Fält
| Fält | Beskrivning |
|---|---|
| TYPE_IDENTITY | En identitetstransform är en där utdata-koordinaterna alltid är samma som indata-koordinaterna. |
| TYPE_TRANSLATION | En translation flyttar koordinaterna med ett konstant värde i x och y utan att ändra vektorns längd eller vinkel. |
| TYPE_UNIFORM_SCALE | En enhetlig skala multiplicerar vektorns längd med samma värde i både x- och y-riktningarna utan att ändra vinkeln mellan vektorerna. |
| TYPE_GENERAL_SCALE | En allmän skalning multiplicerar längden på vektorer med olika värden i x- och y-riktningarna utan att ändra vinkeln mellan vinkelräta vektorer. |
| TYPE_MASK_SCALE | Denna konstant är en bitmask för någon av skalningsflaggbitarna. |
| TYPE_FLIP | Denna flaggbit indikerar att transformen som definieras av detta objekt utför en spegelvändning kring någon axel som ändrar det normalt högervriddna koordinatsystemet till ett vänstervridet system, utöver de konverteringar som anges av andra flaggbitar. |
| TYPE_QUADRANT_ROTATION | Denna flaggbit indikerar att transformen som definieras av detta objekt utför en kvadrantrotation med någon multipel av 90 grader, utöver de konverteringar som anges av andra flaggbitar. |
| TYPE_GENERAL_ROTATION | Denna flaggbit indikerar att transformen som definieras av detta objekt utför en rotation med en godtycklig vinkel, utöver de konverteringar som anges av andra flaggbitar. |
| TYPE_MASK_ROTATION | Denna konstant är en bitmask för någon av rotationsflaggbitarna. |
| TYPE_GENERAL_TRANSFORM | Denna konstant indikerar att transformen som definieras av detta objekt utför en godtycklig konvertering av inmatningskoordinaterna. |
Metoder
| Metod | Beskrivning |
|---|---|
| isEquals(Matrix a, Matrix b) | Bestämmer om två matriser är lika. |
| getM11() | Hämtar matriselementet i första raden första kolumnen. |
| getM12() | Hämtar matriselementet i första raden andra kolumnen. |
| getM21() | Hämtar matriselementet i andra raden första kolumnen. |
| getM22() | Hämtar matriselementet i andra raden andra kolumnen. |
| getM31() | Hämtar matriselementet i tredje raden första kolumnen. |
| getM32() | Hämtar matriselementet i tredje raden första kolumnen. |
| toString() | Returnerar en String som representerar detta objekt. |
| getElements() | Hämtar en kopia av matrisens element. |
| transformPoints(PointF[] points) | Tillämpar den geometriska transformen som representeras av denna Matrix på en specificerad punktarray. |
| scale(float scaleX, float scaleY, int order) | Tillämpar den specificerade skalvektorn (scaleX och scaleY) på denna Matrix med den angivna ordningen. |
| scale(float sx, float sy) | Tillämpar den specificerade skalvektorn (scaleX och scaleY) på denna Matrix med (standard) Prepend‑ordning. |
| translate(float offsetX, float offsetY, int order) | Tillämpar den specificerade translationsvektorn på denna Matrix i den angivna ordningen. |
| translate(float tx, float ty) | Tillämpar den specificerade translationsvektorn på denna Matrix med (standard) Prepend‑ordning. |
| multiply(Matrix tTx, int order) | Multiplicerar denna Matrix med den matris som anges i matris‑parametern, och i den ordning som anges i order‑parametern. |
| multiply(Matrix tTx) | Multiplicerar denna Matrix med den matris som anges i matris‑parametern med (standard) Prepend‑ordning. |
| rotate(float angle, int order) | Tillämpar en medursrotation med en mängd som anges i vinkel‑parametern, kring origo (noll x‑ och y‑koordinater) för denna Matrix i den angivna ordningen. |
| rotate(float angle) | Tillämpar en medursrotation med en mängd som anges i vinkel‑parametern, kring origo (noll x‑ och y‑koordinater) för denna Matrix i standard (Prepend)‑ordning. |
| rotateAt(float angle, PointF point, int order) | Tillämpar en medursrotation kring den specificerade punkten på denna Matrix i den angivna ordningen. |
| rotateAt(float angle, PointF point) | Tillämpar en medursrotation kring den specificerade punkten på denna Matrix i standard (Prepend)‑ordning. |
| reset() | Återställer denna matris så att den har elementerna i identitetsmatrisen. |
| hashCode() | Returnerar en hashkod för detta objekt. |
| equals(Object obj) | Bestämmer om det angivna Object är lika med detta objekt. |
| isIdentity() | Returnerar true om denna AffineTransform är en identitetstransform. |
Matrix()
public Matrix()
Initierar en ny instans av Matrix-klassen som identitetsmatris.
Matrix(float m11, float m12, float m21, float m22, float m31, float m32)
public Matrix(float m11, float m12, float m21, float m22, float m31, float m32)
Initierar en ny instans av Matrix-klassen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| m11 | float | m00 M11 Skala X |
| m12 | float | m10 M12 Skjuv Y |
| m21 | float | m01 M21 Skjuv X |
| m22 | float | m11 M22 Skala Y |
| m31 | float | m02 M31 Översätt X |
| m32 | float | m12 M32 Översätt Y |
Matrix(RectangleF rect, PointF[] plgpts)
public Matrix(RectangleF rect, PointF[] plgpts)
Initierar en ny instans av Matrix-klassen till den geometriska transformationen som definieras av den angivna rektangeln och punktarrayen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| rect | RectangleF | En RectangleF-struktur som representerar rektangeln som ska transformeras. |
| plgpts | PointF[] | En array med tre PointF-strukturer som representerar punkterna i ett parallellogram till vilket det övre vänstra, övre högra och nedre vänstra hörnet av rektangeln ska transformeras. Det nedre högra hörnet av parallellogrammet antas av de första tre hörnen. |
Matrix(Rectangle rect, Point[] plgpts)
public Matrix(Rectangle rect, Point[] plgpts)
Initierar en ny instans av Matrix-klassen till den geometriska transformationen som definieras av den angivna rektangeln och punktarrayen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| rect | Rectangle | En Rectangle-struktur som representerar rektangeln som ska transformeras. |
| plgpts | Point[] | En array med tre Point-strukturer som representerar punkterna i ett parallellogram till vilket det övre vänstra, övre högra och nedre vänstra hörnet av rektangeln ska transformeras. Det nedre högra hörnet av parallellogrammet antas av de första tre hörnen. |
Matrix(Matrix origin)
public Matrix(Matrix origin)
Skapar en kopia av Matrix-klassen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| origin | Matrix | En basmatris för kopiering |
TYPE_IDENTITY
public static final int TYPE_IDENTITY
En identitetstransform är en där utdata-koordinaterna alltid är samma som indata-koordinaterna. Om denna transform är något annat än en identitetstransform kommer typen antingen att vara konstanten GENERAL_TRANSFORM eller en kombination av lämpliga flaggbitar för de olika koordinatkonverteringar som denna transform utför.
TYPE_TRANSLATION
public static final int TYPE_TRANSLATION
En translation flyttar koordinaterna med ett konstant värde i x och y utan att ändra vektorns längd eller vinkel.
TYPE_UNIFORM_SCALE
public static final int TYPE_UNIFORM_SCALE
En enhetlig skalning multiplicerar vektorlängden med samma mängd i både x- och y-riktningarna utan att ändra vinkeln mellan vektorerna. Denna flaggbit är ömsesidigt uteslutande med flaggan TypeGeneralScale.
TYPE_GENERAL_SCALE
public static final int TYPE_GENERAL_SCALE
En generell skalning multiplicerar vektorlängden med olika mängder i x- och y-riktningarna utan att ändra vinkeln mellan vinkelräta vektorer. Denna flaggbit är ömsesidigt uteslutande med flaggan TypeUniformScale.
TYPE_MASK_SCALE
public static final int TYPE_MASK_SCALE
Denna konstant är en bitmask för någon av skalningsflaggbitarna.
TYPE_FLIP
public static final int TYPE_FLIP
Denna flaggbit indikerar att den transform som definieras av detta objekt utför en spegelvändning kring någon axel, vilket förändrar det normalt högerriktade koordinatsystemet till ett vänsterhänt system utöver de konverteringar som anges av andra flaggbitar. Ett högerriktat koordinatsystem är ett där den positiva X-axeln roterar moturs för att överlappa den positiva Y-axeln, liknande den riktning som fingrarna på din högra hand kröker sig när du tittar rakt på tummen. Ett vänsterhänt koordinatsystem är ett där den positiva X-axeln roterar medurs för att överlappa den positiva Y-axeln, liknande den riktning som fingrarna på din vänstra hand kröker sig. Det finns inget matematiskt sätt att bestämma vinkeln för den ursprungliga vändnings- eller speglingstransformen eftersom alla vändningsvinklar är identiska givet en lämplig justerande rotation. OBS: TypeFlip lades till efter att GENERAL_TRANSFORM var i offentlig cirkulation och flaggbitarna kunde inte längre bekvämt omnumreras utan att introducera binär inkompatibilitet i extern kod.
TYPE_QUADRANT_ROTATION
public static final int TYPE_QUADRANT_ROTATION
Denna flaggbit indikerar att den transform som definieras av detta objekt utför en kvadrantrotation med någon multipel av 90 grader utöver de konverteringar som anges av andra flaggbitar. En rotation förändrar vektorernas vinklar med samma mängd oavsett vektorns ursprungliga riktning och utan att ändra vektorns längd. Denna flaggbit är ömsesidigt uteslutande med flaggan TypeGeneralRotation.
TYPE_GENERAL_ROTATION
public static final int TYPE_GENERAL_ROTATION
Denna flaggbits indikerar att transformen som definieras av detta objekt utför en rotation med en godtycklig vinkel utöver de konverteringar som anges av andra flaggbitar. En rotation ändrar vektorns vinklar med samma mängd oavsett vektorns ursprungliga riktning och utan att ändra vektorns längd. Denna flaggbits är ömsesidigt uteslutande med den
TYPE_MASK_ROTATION
public static final int TYPE_MASK_ROTATION
Denna konstant är en bitmask för någon av rotationsflaggbitarna.
TYPE_GENERAL_TRANSFORM
public static final int TYPE_GENERAL_TRANSFORM
Denna konstant indikerar att transformen som definieras av detta objekt utför en godtycklig konvertering av inmatningskoordinaterna. Om denna transform kan klassificeras av någon av ovanstående konstanter kommer typen antingen att vara konstanten TypeIdentity eller en kombination av lämpliga flaggbitar för de olika koordinatkonverteringar som denna transform utför.
isEquals(Matrix a, Matrix b)
public static boolean isEquals(Matrix a, Matrix b)
Bestämmer om två matriser är lika.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| a | Matrix | Den första matrisen att jämföra. |
| b | Matrix | Den andra matrisen att jämföra. |
Returns: boolean - Sant om matriserna är lika.
getM11()
public final float getM11()
Hämtar matriselementet i första raden första kolumnen. Representerar skalning längs X-axeln.
Returns: float - matriselementet i första raden första kolumnen.
getM12()
public final float getM12()
Hämtar matriselementet i första raden andra kolumnen. Representerar skevning längs Y-axeln.
Returns: float - matriselementet i första raden andra kolumnen.
getM21()
public final float getM21()
Hämtar matriselementet i andra raden första kolumnen. Representerar skevning längs X-axeln.
Returns: float - matriselementet i andra raden första kolumnen.
getM22()
public final float getM22()
Hämtar matriselementet i andra raden andra kolumnen. Representerar skalning längs Y-axeln.
Returns: float - matriselementet i andra raden andra kolumnen.
getM31()
public final float getM31()
Hämtar matriselementet i tredje raden första kolumnen. Representerar translation längs X-axeln.
Returns: float - matriselementet i tredje raden första kolumnen.
getM32()
public final float getM32()
Hämtar matriselementet i tredje raden första kolumnen. Representerar translation längs Y-axeln.
Returns: float - matriselementet i tredje raden första kolumnen.
toString()
public String toString()
Returnerar en String som representerar detta objekt.
Returns: java.lang.String - En sträng som representerar detta objekt.
getElements()
public final float[] getElements()
Hämtar en kopia av matrisens element.
Returns: float[] - En kopia av matrisens element.
transformPoints(PointF[] points)
public final void transformPoints(PointF[] points)
Tillämpar den geometriska transformen som representeras av denna Matrix på en specificerad punktarray.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| points | PointF[] | Punkterna. |
scale(float scaleX, float scaleY, int order)
public final void scale(float scaleX, float scaleY, int order)
Tillämpar den specificerade skalvektorn (scaleX och scaleY) på denna Matrix med den angivna ordningen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| scaleX | float | Skalning X. |
| scaleY | float | Skalning Y. |
| order | int | Ordningen. |
scale(float sx, float sy)
public final void scale(float sx, float sy)
Tillämpar den specificerade skalvektorn (scaleX och scaleY) på denna Matrix med (standard) Prepend‑ordning.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| sx | float | sx:et. sx:et. sx:et. |
| sy | float | sy:et. sy:et. sy:et. |
translate(float offsetX, float offsetY, int order)
public final void translate(float offsetX, float offsetY, int order)
Tillämpar den specificerade translationsvektorn på denna Matrix i den angivna ordningen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| offsetX | float | offset X:et. |
| offsetY | float | offset Y:et. |
| order | int | Ordningen. |
translate(float tx, float ty)
public final void translate(float tx, float ty)
Tillämpar den specificerade translationsvektorn på denna Matrix med (standard) Prepend‑ordning.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| tx | float | tx:et. tx:et. tx:et. |
| ty | float | ty:et. ty:et. ty:et. |
multiply(Matrix tTx, int order)
public final void multiply(Matrix tTx, int order)
Multiplicerar denna Matrix med den matris som anges i matris‑parametern, och i den ordning som anges i order‑parametern.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| tTx | Matrix | tx:et. tx:et. tx:et. |
| order | int | ordningen. ordningen. ordningen. |
multiply(Matrix tTx)
public final void multiply(Matrix tTx)
Multiplicerar denna Matrix med den matris som anges i matris‑parametern med (standard) Prepend‑ordning.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| tTx | Matrix | matrisen att multiplicera med. |
rotate(float angle, int order)
public final void rotate(float angle, int order)
Tillämpar en medursrotation med en mängd som anges i vinkel‑parametern, kring origo (noll x‑ och y‑koordinater) för denna Matrix i den angivna ordningen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| angle | float | rotationsvinkeln. |
| order | int | matrisordningen. |
rotate(float angle)
public final void rotate(float angle)
Tillämpar en medursrotation med en mängd som anges i vinkel‑parametern, kring origo (noll x‑ och y‑koordinater) för denna Matrix i standard (Prepend)‑ordning.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| angle | float | rotationsvinkeln. |
rotateAt(float angle, PointF point, int order)
public final void rotateAt(float angle, PointF point, int order)
Tillämpar en medursrotation kring den specificerade punkten på denna Matrix i den angivna ordningen.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| angle | float | vinkeln. |
| point | PointF | punkten. |
| order | int | Ordningen. |
rotateAt(float angle, PointF point)
public final void rotateAt(float angle, PointF point)
Tillämpar en medursrotation kring den specificerade punkten på denna Matrix i standard (Prepend)‑ordning.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| angle | float | vinkeln. |
| point | PointF | punkten. |
reset()
public final void reset()
Återställer denna matris så att den har elementerna i identitetsmatrisen.
hashCode()
public int hashCode()
Returnerar en hashkod för detta objekt.
Returns: int - En hashkod för denna instans, lämplig för användning i hash-algoritmer och datastrukturer som en hash‑tabell.
equals(Object obj)
public boolean equals(Object obj)
Bestämmer om det angivna Object är lika med detta objekt.
Parameters:
| Parameter | Typ | Beskrivning |
|---|---|---|
| obj | java.lang.Object | Det Object att jämföra med den här instansen. |
Returns:
boolean - true om det angivna Object är lika med den här instansen; annars false.
isIdentity()
public boolean isIdentity()
Returnerar true om denna AffineTransform är en identitetstransform.
Returns:
boolean - true om detta AffineTransform är en identitetstransform; false annars.