FS_MATRIX zum Verketten von PDF-User-Space-Transformationentype TPdfMatrix = class ... end;
| Typ | Beschreibung |
|---|---|
TPdfPointArray | Dynamisches Array von FS_POINTF-Werten für Sammel-Punkt-Operationen |
TPdfRectArray | Dynamisches Array von FS_RECTF-Werten für Sammel-Rechteck-Operationen |
TPdfMatrixFitMode | pmfStretch-, pmfContain- oder pmfCover-Anpassungsstrategie für die Rechteck-Zuordnung |
TPdfMatrixDecomposition | Translation, vorzeichenbehaftete Skalierung, Drehung im Uhrzeigersinn, Scherung, Determinante und Spiegelungs-Diagnostik, die TryDecompose in den Feldern TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant und IsReflected liefert |
| Member | Beschreibung |
|---|---|
Create | Erstellt eine Einheitsmatrix, eine Sechswert-Matrix oder eine defensive Kopie aus FS_MATRIX |
NewTranslation | Erstellt eine neue Translationsmatrix |
NewScale | Erstellt eine neue nicht-uniforme Skalierungsmatrix |
NewRotation | Erstellt eine Drehmatrix im oder gegen den Uhrzeigersinn, in Grad oder Radiant |
NewSkew | Erstellt eine Matrix mit getrennten X- und Y-Scherwinkeln |
NewRectMapping | Erstellt eine Matrix, die ein Quellrechteck in einem Zielrechteck streckt, einpasst oder überdeckt |
TryCreateRectMapping | Liefert eine FS_MATRIX-Zuordnung und weist null-große, nicht-finite oder überlaufende Eingaben ohne Objektallokation zurück |
Reset | Setzt die Matrix auf die Einheitsmatrix zurück |
SetElements | Ersetzt alle sechs Matrixelemente in einem Aufruf |
Assign | Kopiert eine andere TPdfMatrix oder eine rohe FS_MATRIX in diese Instanz |
Clone | Erstellt eine unabhängige Objektkopie |
Determinant | Liefert die Determinante der linearen 2-mal-2-Komponente |
IsFinite | Meldet, ob jedes Element ein endlicher Single-Wert ist |
IsIdentity | Prüft die Einheitsmatrix mit einer vom Aufrufer wählbaren Toleranz |
IsInvertible | Prüft endliche und skalenbewusste Invertierbarkeit, ohne eine Inverse zu berechnen |
IsTranslationOnly | Prüft, ob die lineare Komponente die Einheitsmatrix ist |
IsAxisAligned | Prüft, ob Rechtecke achsenparallel bleiben, einschließlich Vierteldrehungs-Anordnungen innerhalb der Toleranz |
NearlyEquals | Vergleicht mit TPdfMatrix oder FS_MATRIX unter Verwendung einer Toleranz |
GetTranslation | Liest die X- und Y-Translationselemente gemeinsam |
SetTranslation | Ersetzt die X- und Y-Translation, während die lineare Komponente erhalten bleibt |
ClearTranslation | Setzt beide Translationselemente auf null |
TryDecompose | Extrahiert Translation, vorzeichenbehaftete Skalierung, Drehung im Uhrzeigersinn, Scherung, Determinante und Spiegelungszustand, wenn die Matrix nichtsingulär ist |
Multiply | Multipliziert von rechts mit einer anderen TPdfMatrix oder expliziten a- bis f-Werten |
PreMultiply | Multipliziert von links mit einer anderen TPdfMatrix oder einer expliziten Sechswert-Matrix |
PreTranslate | Stellt eine Translation im lokalen Eingaberaum der Matrix voran |
PreScale | Stellt getrennte X- und Y-Skalfaktoren voran |
PreRotate | Stellt eine Drehung im oder gegen den Uhrzeigersinn voran |
PreSkew | Stellt getrennte X- und Y-Scherwinkel voran |
Translate | Hängt eine Translation um deltaX und deltaY an |
Scale | Hängt getrennte X- und Y-Skalfaktoren an |
Rotate | Hängt eine Drehung im oder gegen den Uhrzeigersinn in Grad oder Radiant an |
HorizontalFlip | Hängt eine X-Achsen-Spiegelung an |
VerticalFlip | Hängt eine Y-Achsen-Spiegelung an |
CentralFlip | Hängt beide Achsenspiegelungen an, äquivalent zu einer 180-Grad-Drehung ohne Trigonometrie |
Skew | Hängt getrennte X- und Y-Scherwinkel an |
RotateAt | Hängt eine Drehung um einen fest bleibenden Drehpunkt an |
ScaleAt | Hängt eine Skalierung um einen fest bleibenden Drehpunkt an |
SkewAt | Hängt eine Scherung um einen fest bleibenden Drehpunkt an |
HorizontalFlipAt | Hängt eine horizontale Spiegelung um eine vom Aufrufer gewählte X-Koordinate an |
VerticalFlipAt | Hängt eine vertikale Spiegelung um eine vom Aufrufer gewählte Y-Koordinate an |
CentralFlipAt | Hängt beide Spiegelungen um einen vom Aufrufer gewählten Drehpunkt an |
MapRectToRect | Hängt eine Stretch-, Contain- oder Cover-Zuordnung zwischen normalisierten Rechtecken an |
Invert | Ersetzt die Matrix durch ihre Inverse oder löst EPdfMatrixError aus, wenn sie singulär ist |
TryInvert | Ersetzt die Matrix durch ihre Inverse und liefert False ohne Mutation, wenn sie singulär oder nahezu singulär ist |
TryGetInverse | Berechnet eine inverse FS_MATRIX, ohne diese Instanz zu verändern |
InverseCopy | Erstellt eine unabhängige inverse Matrix oder löst EPdfMatrixError aus, wenn sie singulär ist |
TransformPoint | Abbildet eine Koordinate durch die affine Transformation unter Verwendung der PDF-Zeilenvektor-Konvention |
TransformVector | Abbildet eine Richtung ausschließlich durch die lineare Komponente, sodass die Translation ignoriert wird |
TryInverseTransformPoint | Abbildet einen Punkt durch die Inverse, ohne eine Matrix zu allokieren, und meldet eine singuläre Transformation als False |
InverseTransformPoint | Abbildet einen Punkt durch die Inverse oder löst EPdfMatrixError aus, wenn sie singulär ist |
TransformQuad | Abbildet alle vier Punkte eines FS_QUADPOINTSF-Werts |
TransformPoints | Abbildet ein Punkte-Array mit einer einzigen Ergebnis-Allokation |
TransformPointsInPlace | Abbildet ein Punkte-Array im Speicher des Aufrufers, ohne ein weiteres Array zu allokieren |
TryTransformBounds | Akkumuliert transformierte Punktgrenzen in einem Durchlauf und liefert False bei leerer Eingabe |
TransformBounds | Akkumuliert transformierte Punktgrenzen in einem Durchlauf oder löst EPdfMatrixError bei leerer Eingabe aus |
TransformRect | Normalisiert und bildet ein Rechteck über einen exakten achsenparallelen Schnellpfad oder enge Vier-Ecken-Grenzen ab |
TransformRects | Abbildet ein Rechteck-Array mit einer einzigen Ergebnis-Allokation |
TransformRectsInPlace | Abbildet ein Rechteck-Array im Speicher des Aufrufers, ohne ein weiteres Array zu allokieren |
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
a | Single | Schreibgeschütztes erstes Matrixelement |
b | Single | Schreibgeschütztes zweites Matrixelement |
c | Single | Schreibgeschütztes drittes Matrixelement |
d | Single | Schreibgeschütztes viertes Matrixelement |
e | Single | Schreibgeschütztes Translation-X-Element |
f | Single | Schreibgeschütztes Translation-Y-Element |
Handle | FS_MATRIX | Rohwert der Matrix für PDFium-APIs, die FS_MATRIX oder PFS_MATRIX akzeptieren |
TPdfMatrix verwendet das affine PDF-Layout a b c d e f und multipliziert jede Operation von rechts, sodass Aufrufe in derselben Reihenfolge gelesen werden, in der die Transformationen auf Punkte angewendet werden
PreMultiply und die Pre*-Helfer fügen Operationen vor der aktuellen Transformation ein, während die Pivot-Helfer Translation-Operation-Translation-Sequenzen anhängen, die den gewählten Drehpunkt fest halten
pmfContain bewahrt das vollständige Quellrechteck mit zentriertem ungenutztem Raum, pmfCover füllt das Ziel mit zentriertem Überlauf, während pmfStretch eine unabhängige X- und Y-Skalierung erlaubt
Sammel-Punkt- und Rechteck-Methoden allokieren genau ein Ausgabearray, ihre In-Place-Varianten allokieren keines, und TryTransformBounds durchsucht transformierte Punkte, ohne ein Zwischenarray zu konstruieren
Verwenden Sie Handle mit APIs wie FPDFPageObj_SetMatrix, FPDFPageObj_Transform und FPDFText_SetMatrix
var
Matrix: TPdfMatrix;
begin
Matrix := TPdfMatrix.Create;
Matrix.ScaleAt(0.5, 0.5, 144, 144);
Matrix.RotateAt(15, 144, 144);
Matrix.Translate(72, 72);
FPDFPageObj_SetMatrix(ObjectHandle, @Matrix.Handle);
end;