Matrix

Matrix class

Ersätter GDI+-matrisen.

public class Matrix

Konstruktörer

namnBeskrivning
Matrix()Initierar en ny instans av Matrix-klassen som identitetsmatris.
Matrix(Matrix)Gör en kopia avMatrix class.
Matrix(Rectangle, Point[])Initierar en ny instans avMatrix klass till den geometriska transformationen som definieras av den specificerade rektangeln och matrisen av punkter.
Matrix(RectangleF, PointF[])Initierar en ny instans avMatrix klass till den geometriska transformationen som definieras av den specificerade rektangeln och matrisen av punkter.
Matrix(float, float, float, float, float, float)Initierar en ny instans avMatrix class.

Egenskaper

namnBeskrivning
Elements { get; }Får en matris med flyttalsvärden som representerar elementen i dettaMatrix .
M11 { get; }Hämtar matriselementet vid första radens första kolumn. Representerar skala längs X-axeln.
M12 { get; }Hämtar matriselementet vid första radens andra kolumn. Representerar skjuvning längs Y-axeln.
M21 { get; }Hämtar matriselementet vid andra radens första kolumn. Representerar skjuvning längs X-axeln.
M22 { get; }Hämtar matriselementet vid andra radens andra kolumn. Representerar skala längs Y-axeln.
M31 { get; }Hämtar matriselementet vid tredje radens första kolumn. Representerar översättning längs X-axeln.
M32 { get; }Hämtar matriselementet vid tredje radens första kolumn. Representerar översättning längs Y-axeln.

Metoder

namnBeskrivning
override Equals(object)Bestämmer om den angivnaObject är lika med denna instans.
GetElements()Hämtar kopian av matriselement.
override GetHashCode()Returnerar en hash-kod för denna instans.
Multiply(Matrix)Multiplicerar denna matris med matrisen som anges i matrisparametern med hjälp av (standard) Prepend order.
Multiply(Matrix, MatrixOrder)Multiplicerar denna matris med matrisen som anges i matrisparametern och i den ordning som anges i orderparametern.
Reset()Återställer denna matris för att ha elementen i identitetsmatrisen.
Rotate(float)Tillämpar en medurs rotation av en mängd som anges i vinkelparametern, runt origo (noll x- och y-koordinater) för denna matris i standardordningen (Prepend).
Rotate(float, MatrixOrder)Tillämpar en medurs rotation av en mängd som anges i vinkelparametern, runt origo (noll x- och y-koordinater) för denna matris i angiven ordning.
RotateAt(float, PointF)Tillämpar en medurs rotation kring den angivna punkten på denna matris i standardordningen (Prepend).
RotateAt(float, PointF, MatrixOrder)Tillämpar en medurs rotation kring den angivna punkten på denna matris i angiven ordning.
Scale(float, float)Tillämpar den angivna skalvektorn (scaleX och scaleY) på denna matris med hjälp av (standard) Prepend order.
Scale(float, float, MatrixOrder)Tillämpar den angivna skalvektorn (scaleX och scaleY) på dettaMatrix med den angivna ordningen.
override ToString()Returnerar enString som representerar denna instans.
TransformPoints(PointF[])Tillämpar den geometriska transformationen som representeras av dettaMatrixtill en specificerad uppsättning punkter.
Translate(float, float)Tillämpar den angivna översättningsvektorn på dettaMatrix använder (standard) Prepend order.
Translate(float, float, MatrixOrder)Tillämpar den angivna översättningsvektorn på denna matris i angiven ordning.
static Equals(Matrix, Matrix)Bestämmer om två matriser är lika.

Fält

namnBeskrivning
const TypeFlipDenna flaggbit indikerar att omvandlingen som definieras av detta objekt utför en spegelvändning kring någon axel som ändrar normalt högerhänt koordinatsystem till ett vänsterhänt förutom omvandlingarna som indikeras av andra flaggbitar. Ett högerhänt koordinatsystem är en där den positiva X -axeln roterar moturs för att överlägga den positiva Y-axeln liknande riktningen som fingrarna på din högra hand kröker sig när du stirrar på tummen. Ett vänsterhänt koordinatsystem är ett där det positiva X_x000 roterar medurs för att överlägga den positiva Y-axeln similar i 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ändningen eller spegelvändningen eftersom alla vinklar av vändningen är identiska med en lämplig justeringsrotation. OBS: TypeFlip lades till efter GENERAL_TRANSFORM var i public cirkulation och flaggbitarna kunde inte längre bekvämt omnumreras utan att införa binär inkompatibilitet i outside kod.
const TypeGeneralRotationDenna flaggbit indikerar att transformationen som definieras av detta objekt utför en rotation med en godtycklig vinkel utöver de omvandlingarna som indikeras av andra flaggbitar. En rotation ändrar vinklarna på vektorerna med samma mängd i vektorns riktning oavsett den ursprungliga riktningen och utan att ändra längden på vektorn. Denna flaggbit är ömsesidigt uteslutande med the
const TypeGeneralScaleEn allmän skala multiplicerar längden på vektorer 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.
const TypeGeneralTransformDenna konstant indikerar att transformationen som definieras av detta object utför en godtycklig omvandling av ingångskoordinaterna. Om denna transform kan klassificeras av någon av ovanstående konstanter, kommer typen antingen att vara konstant TypeIdentity eller a kombination av lämplig flagga bitar för de olika koordinat -omvandlingarna som denna transformation utför.
const TypeIdentityEn identitetstransform är en där utgångskoordinaterna är alltid desamma som ingångskoordinaterna. Om denna transformation är något annat än identitetstransformen, kommer typen antingen att vara den konstanta GENERAL_TRANSFORM eller a kombinationen av lämpliga flaggbitar för de olika koordinat omvandlingarna som denna transformation utför.
const TypeMaskRotationDenna konstant är en bitmask för någon av rotationsflaggans bitar.
const TypeMaskScaleDenna konstant är en bitmask för vilken som helst av skalflaggbitarna.
const TypeQuadrantRotationDenna flaggbit indikerar att transformationen som definieras av detta objekt utför en kvadrantrotation med någon multipel av 90 grader in tillägg till de omvandlingar som indikeras av andra flaggbitar. En rotation ändrar vinklarna för vektorer med samma mängd oavsett den ursprungliga riktningen. av vektorn och utan att ändra längden på vektorn. Denna flaggbit är ömsesidigt uteslutande med flaggan TypeGeneralRotation.
const TypeTranslationEn översättning flyttar koordinaterna med en konstant mängd i x och y utan att ändra längden eller vinkeln på vektorerna.
const TypeUniformScaleEn enhetlig skala multiplicerar längden på vektorer med samma mängd i både x- och y-riktningarna utan att ändra vinkeln mellan vektorer. Denna flaggbit är ömsesidigt uteslutande med flaggan TypeGeneralScale.

Anmärkningar

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 ettor till beskrivning: m00 M11 Skala X mx2 Scale She m10 M10 M10 M10 M10 M10 M10 M10 M10 M10 M2 M10 M10 M10 M10 M2 Översätt X m12 M32 Översätt Y

Se även