FS_MATRIX de PDFium para componer transformaciones del espacio de usuario PDFtype TPdfMatrix = class ... end;
| Tipo | Descripción |
|---|---|
TPdfPointArray | Arreglo dinámico de valores FS_POINTF usado por operaciones masivas de puntos |
TPdfRectArray | Arreglo dinámico de valores FS_RECTF usado por operaciones masivas de rectángulos |
TPdfMatrixFitMode | Política de ajuste pmfStretch, pmfContain o pmfCover para el mapeo de rectángulos |
TPdfMatrixDecomposition | Traslación, escala con signo, rotación en sentido horario, inclinación, determinante y diagnósticos de reflexión que devuelve TryDecompose en los campos TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant e IsReflected |
| Miembro | Descripción |
|---|---|
Create | Crea una matriz identidad, una matriz de seis valores o una copia defensiva desde FS_MATRIX |
NewTranslation | Crea una nueva matriz de traslación |
NewScale | Crea una nueva matriz de escala no uniforme |
NewRotation | Crea una matriz de rotación en sentido horario o antihorario en grados o radianes |
NewSkew | Crea una matriz con ángulos de inclinación X e Y separados |
NewRectMapping | Crea una matriz que estira, contiene o cubre un rectángulo de origen dentro de un rectángulo de destino |
TryCreateRectMapping | Devuelve un mapeo FS_MATRIX y rechaza entradas de tamaño cero, no finitas o desbordadas sin asignar un objeto |
Reset | Restablece la matriz a la identidad |
SetElements | Reemplaza los seis elementos de la matriz en una sola llamada |
Assign | Copia otra TPdfMatrix o una FS_MATRIX directa en esta instancia |
Clone | Crea una copia independiente del objeto |
Determinant | Devuelve el determinante del componente lineal de 2 por 2 |
IsFinite | Informa si cada elemento es un valor Single finito |
IsIdentity | Comprueba la identidad usando una tolerancia seleccionable por quien llama |
IsInvertible | Comprueba la invertibilidad finita y consciente de la escala sin calcular la inversa |
IsTranslationOnly | Comprueba si el componente lineal es la identidad |
IsAxisAligned | Comprueba si los rectángulos permanecen alineados con los ejes, incluidas las disposiciones de giro de un cuarto de vuelta dentro de la tolerancia |
NearlyEquals | Compara con TPdfMatrix o FS_MATRIX usando una tolerancia |
GetTranslation | Lee juntos los elementos de traslación X e Y |
SetTranslation | Reemplaza la traslación X e Y conservando el componente lineal |
ClearTranslation | Establece ambos elementos de traslación en cero |
TryDecompose | Extrae traslación, escala con signo, rotación en sentido horario, inclinación, determinante y estado de reflexión cuando la matriz es no singular |
Multiply | Posmultiplica por otra TPdfMatrix o por valores explícitos de a a f |
PreMultiply | Premultiplica por otra TPdfMatrix o por una matriz explícita de seis valores |
PreTranslate | Antepone una traslación en el espacio de entrada local de la matriz |
PreScale | Antepone factores de escala X e Y separados |
PreRotate | Antepone una rotación en sentido horario o antihorario |
PreSkew | Antepone ángulos de inclinación X e Y separados |
Translate | Anexa una traslación de deltaX y deltaY |
Scale | Anexa factores de escala X e Y separados |
Rotate | Anexa una rotación en sentido horario o antihorario en grados o radianes |
HorizontalFlip | Anexa un volteo respecto al eje X |
VerticalFlip | Anexa un volteo respecto al eje Y |
CentralFlip | Anexa ambos volteos, equivalente a una rotación de 180 grados sin trigonometría |
Skew | Anexa ángulos de inclinación X e Y separados |
RotateAt | Anexa una rotación alrededor de un pivote que permanece fijo |
ScaleAt | Anexa una escala alrededor de un pivote que permanece fijo |
SkewAt | Anexa una inclinación alrededor de un pivote que permanece fijo |
HorizontalFlipAt | Anexa un volteo horizontal alrededor de una coordenada X elegida por quien llama |
VerticalFlipAt | Anexa un volteo vertical alrededor de una coordenada Y elegida por quien llama |
CentralFlipAt | Anexa ambos volteos alrededor de un pivote elegido por quien llama |
MapRectToRect | Anexa un mapeo de estiramiento, contención o cobertura entre rectángulos normalizados |
Invert | Reemplaza la matriz por su inversa o genera EPdfMatrixError cuando es singular |
TryInvert | Reemplaza la matriz por su inversa y devuelve False sin mutarla cuando es singular o casi singular |
TryGetInverse | Calcula una FS_MATRIX inversa sin mutar esta instancia |
InverseCopy | Crea una matriz inversa independiente o genera EPdfMatrixError cuando es singular |
TransformPoint | Mapea una coordenada mediante la transformación afín usando la convención de vectores de fila de PDF |
TransformVector | Mapea una dirección solo por el componente lineal, de modo que la traslación se ignora |
TryInverseTransformPoint | Mapea un punto por la inversa sin asignar una matriz e informa una transformación singular como False |
InverseTransformPoint | Mapea un punto por la inversa o genera EPdfMatrixError cuando es singular |
TransformQuad | Mapea los cuatro puntos de un valor FS_QUADPOINTSF |
TransformPoints | Mapea un arreglo de puntos con una sola asignación de resultados |
TransformPointsInPlace | Mapea un arreglo de puntos en almacenamiento propio de quien llama sin asignar otro arreglo |
TryTransformBounds | Acumula los límites de los puntos transformados en una pasada y devuelve False para una entrada vacía |
TransformBounds | Acumula los límites de los puntos transformados en una pasada o genera EPdfMatrixError para una entrada vacía |
TransformRect | Normaliza y mapea un rectángulo mediante una vía rápida exacta alineada con los ejes o por límites ajustados de cuatro esquinas |
TransformRects | Mapea un arreglo de rectángulos con una sola asignación de resultados |
TransformRectsInPlace | Mapea un arreglo de rectángulos en almacenamiento propio de quien llama sin asignar otro arreglo |
| Propiedad | Tipo | Descripción |
|---|---|---|
a | Single | Primer elemento de la matriz, de solo lectura |
b | Single | Segundo elemento de la matriz, de solo lectura |
c | Single | Tercer elemento de la matriz, de solo lectura |
d | Single | Cuarto elemento de la matriz, de solo lectura |
e | Single | Elemento de traslación X, de solo lectura |
f | Single | Elemento de traslación Y, de solo lectura |
Handle | FS_MATRIX | Valor de matriz directo para las API de PDFium que aceptan FS_MATRIX o PFS_MATRIX |
TPdfMatrix usa la disposición afín de PDF a b c d e f y posmultiplica cada operación, de modo que las llamadas se leen en el mismo orden en que las transformaciones se aplican a los puntos
PreMultiply y los auxiliares Pre* agregan operaciones antes de la transformación actual, mientras que los auxiliares con pivote anexan secuencias de traslación-operación-traslación que mantienen fijo el pivote elegido
pmfContain conserva el rectángulo de origen completo con espacio sin usar centrado y pmfCover llena el destino con desbordamiento centrado, mientras que pmfStretch permite escalar X e Y de forma independiente
Los métodos masivos de puntos y rectángulos asignan un solo arreglo de salida, sus variantes en el lugar no asignan ninguno y TryTransformBounds examina los puntos transformados sin construir un arreglo intermedio
Use Handle con API como FPDFPageObj_SetMatrix, FPDFPageObj_Transform y 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;