FS_MATRIX الخاص بـ PDFium لتركيب تحويلات فضاء المستخدم في PDFtype TPdfMatrix = class ... end;
| النوع | الوصف |
|---|---|
TPdfPointArray | مصفوفة ديناميكية من قيم FS_POINTF تستخدمها عمليات النقاط الجماعية |
TPdfRectArray | مصفوفة ديناميكية من قيم FS_RECTF تستخدمها عمليات المستطيلات الجماعية |
TPdfMatrixFitMode | سياسة ملاءمة pmfStretch أو pmfContain أو pmfCover لتعيين المستطيلات |
TPdfMatrixDecomposition | تشخيصات الإزاحة والتحجيم الموقع والدوران مع عقارب الساعة والقص والمحدد والانعكاس التي يعيدها TryDecompose في الحقول TranslationX و TranslationY و ScaleX و ScaleY و RotationDegrees و ShearDegrees و Determinant و IsReflected |
| العضو | الوصف |
|---|---|
Create | ينشئ مصفوفة وحدة أو مصفوفة من ست قيم أو نسخة دفاعية من FS_MATRIX |
NewTranslation | ينشئ مصفوفة إزاحة جديدة |
NewScale | ينشئ مصفوفة تحجيم غير منتظم جديدة |
NewRotation | ينشئ مصفوفة دوران باتجاه عقارب الساعة أو عكسها بالدرجات أو بالراديان |
NewSkew | ينشئ مصفوفة بزوايا قص منفصلة لـ X و Y |
NewRectMapping | ينشئ مصفوفة تمطط أو تحتوي أو تغطي مستطيل مصدر داخل مستطيل وجهة |
TryCreateRectMapping | يعيد تعيين FS_MATRIX ويرفض المدخلات صفرية الحجم أو غير المنتهية أو الفائضة دون تخصيص كائن |
Reset | يعيد المصفوفة إلى مصفوفة الوحدة |
SetElements | يستبدل عناصر المصفوفة الستة كلها في استدعاء واحد |
Assign | ينسخ TPdfMatrix أخرى أو FS_MATRIX خامًا إلى هذه النسخة |
Clone | ينشئ نسخة كائن مستقلة |
Determinant | يعيد محدد المكون الخطي 2 في 2 |
IsFinite | يُبلِّغ عما إذا كان كل عنصر قيمة Single منتهية |
IsIdentity | يختبر الوحدة بتفاوت يختاره المستدعي |
IsInvertible | يختبر قابلية القلب المنتهية والواعية للتحجيم دون حساب معكوس |
IsTranslationOnly | يختبر ما إذا كان المكون الخطي مصفوفة وحدة |
IsAxisAligned | يختبر ما إذا بقيت المستطيلات محاذية للمحاور، بما في ذلك التخطيطات برد أربعين ضمن التفاوت |
NearlyEquals | يقارن مع TPdfMatrix أو FS_MATRIX بتفاوت |
GetTranslation | يقرأ عنصري الإزاحة X و Y معًا |
SetTranslation | يستبدل إزاحة X و Y مع الحفاظ على المكون الخطي |
ClearTranslation | يضبط عنصري الإزاحة على صفر |
TryDecompose | يستخرج الإزاحة والتحجيم الموقع والدوران مع عقارب الساعة والقص والمحدد وحالة الانعكاس عندما تكون المصفوفة غير شاذة |
Multiply | يضرب من الجهة اليمينية بـ TPdfMatrix أخرى أو بقيم a حتى f صريحة |
PreMultiply | يضرب من الجهة اليسرى بـ TPdfMatrix أخرى أو بمصفوفة من ست قيم صريحة |
PreTranslate | يسبق إزاحة بفضاء إدخال المصفوفة المحلي |
PreScale | يسبق معاملي تحجيم منفصلين لـ X و Y |
PreRotate | يسبق دورانًا باتجاه عقارب الساعة أو عكسه |
PreSkew | يسبق زاويتي قص منفصلتين لـ X و Y |
Translate | يلحق إزاحة بمقدار deltaX و deltaY |
Scale | يلحق معاملي تحجيم منفصلين لـ X و Y |
Rotate | يلحق دورانًا باتجاه عقارب الساعة أو عكسه بالدرجات أو بالراديان |
HorizontalFlip | يلحق قلبًا حول المحور X |
VerticalFlip | يلحق قلبًا حول المحور Y |
CentralFlip | يلحق قلبَي المحورين معًا، أي دوران 180 درجة دون مثلثات |
Skew | يلحق زاويتي قص منفصلتين لـ X و Y |
RotateAt | يلحق دورانًا حول محور دوران يبقى ثابتًا |
ScaleAt | يلحق تحجيمًا حول نقطة ارتكاز تبقى ثابتة |
SkewAt | يلحق قصًا حول نقطة ارتكاز تبقى ثابتة |
HorizontalFlipAt | يلحق قلبًا أفقيًا حول إحداثي X يختاره المستدعي |
VerticalFlipAt | يلحق قلبًا رأسيًا حول إحداثي Y يختاره المستدعي |
CentralFlipAt | يلحق القلبين معًا حول نقطة ارتكاز يختارها المستدعي |
MapRectToRect | يلحق تعيين تمطيط أو احتواء أو تغطية بين مستطيلات مطبَّعة |
Invert | يستبدل المصفوفة بمعكوسها أو يرفع EPdfMatrixError عندما تكون شاذة |
TryInvert | يستبدل المصفوفة بمعكوسها ويعيد False دون تغيير عندما تكون شاذة أو شبه شاذة |
TryGetInverse | يحسب FS_MATRIX معكوسة دون تغيير هذه النسخة |
InverseCopy | ينشئ مصفوفة معكوسة مستقلة أو يرفع EPdfMatrixError عند الشذوذ |
TransformPoint | يعين إحداثيًا عبر التحويل الأفيني باصطلاح متجه الصف في PDF |
TransformVector | يعين اتجاهًا عبر المكون الخطي فقط بحيث تُهمل الإزاحة |
TryInverseTransformPoint | يعين نقطة عبر المعكوس دون تخصيص مصفوفة ويُبلِّغ عن تحويل شاذ بـ False |
InverseTransformPoint | يعين نقطة عبر المعكوس أو يرفع EPdfMatrixError عند الشذوذ |
TransformQuad | يعين نقاط FS_QUADPOINTSF الأربع كلها |
TransformPoints | يعين مصفوفة نقاط بتخصيص نتيجة واحد |
TransformPointsInPlace | يعين مصفوفة نقاط في مخزن يملكه المستدعي دون تخصيص مصفوفة أخرى |
TryTransformBounds | يجمع حدود النقاط المحوَّلة في تمريرة واحدة ويعيد False للإدخال الفارغ |
TransformBounds | يجمع حدود النقاط المحوَّلة في تمريرة واحدة أو يرفع EPdfMatrixError للإدخال الفارغ |
TransformRect | يطبع ويعين مستطيلًا عبر مسار سريع محاذ للمحاور تمامًا أو عبر حدود الزوايا الأربع المحكمة |
TransformRects | يعين مصفوفة مستطيلات بتخصيص نتيجة واحد |
TransformRectsInPlace | يعين مصفوفة مستطيلات في مخزن يملكه المستدعي دون تخصيص مصفوفة أخرى |
| الخاصية | النوع | الوصف |
|---|---|---|
a | Single | عنصر المصفوفة الأول للقراءة فقط |
b | Single | عنصر المصفوفة الثاني للقراءة فقط |
c | Single | عنصر المصفوفة الثالث للقراءة فقط |
d | Single | عنصر المصفوفة الرابع للقراءة فقط |
e | Single | عنصر الإزاحة X للقراءة فقط |
f | Single | عنصر الإزاحة Y للقراءة فقط |
Handle | FS_MATRIX | قيمة المصفوفة الخام لواجهات PDFium التي تقبل FS_MATRIX أو PFS_MATRIX |
تستخدم TPdfMatrix تخطيط PDF الأفيني a b c d e f وتضرب من اليمين في كل عملية، فتُقرأ الاستدعاءات بالترتيب نفسه الذي تُطبق به التحويلات على النقاط
يضيف PreMultiply والمساعدات Pre* العمليات قبل التحويل الحالي، بينما تلحق مساعدات نقطة الارتكاز تسلسلات إزاحة-عملية-إزاحة تبقي نقطة الارتكاز المختارة ثابتة
يحفظ pmfContain مستطيل المصدر كاملًا مع فراغ متمركز، و pmfCover يملأ الوجهة بفيض متمركز، بينما يسمح pmfStretch بتحجيم X و Y مستقلين
تخصص الطرق الجماعية للنقاط والمستطيلات مصفوفة إخراج واحدة، وصيغها في الموضع لا تخصص شيئًا، ويمسح TryTransformBounds النقاط المحوَّلة دون بناء مصفوفة وسيطة
استخدم Handle مع واجهات مثل FPDFPageObj_SetMatrix و FPDFPageObj_Transform و 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;