يشرح هذا الدليل كيفية تحديد حجم عناصر الصفحة ووضعها باستخدام عمليات تحويل affine. للحصول على مقدمة مفاهيمية عن عمليات التحويل الأفيني، اطّلِع على دليل المفاهيم المتعلّقة بعمليات التحويل.
تحويل العناصر
تتيح لك واجهة برمجة التطبيقات Slides API إعادة وضع العناصر وتغيير حجمها على الصفحة. لإجراء ذلك، حدِّد أولاً نوع التحويل الذي يجب تطبيقه، ثم طبِّق عملية التحويل باستخدام الأسلوب presentations.batchUpdate الذي يحتوي على عنصر واحد أو أكثر من عناصر UpdatePageElementTransformRequest.
يمكن إجراء عمليات التحويل في أحد هذين applyModes:
تعمل عمليات التحويل
ABSOLUTE
على استبدال مصفوفة التحويل الحالية للعنصر. يتم ضبط أيّ مَعلمات تحذفها من طلب تعديل التحويل على صفر.تتمّ مضاعفة عمليات التحويل
RELATIVE
بمصفوفة التحويل الحالية للعنصر (يُرجى العِلم أنّ ترتيب الضرب مهم):
تنقل أو توسّع عمليات التحويل النسبية عنصر الصفحة من مكانه الحالي، على سبيل المثال، نقل شكل 100 نقطة إلى اليسار أو تدويره 40 درجة. تتخلّص عمليات التحويل المطلقة من معلومات الموضع الحالي ودرجة التكبير/التصغير، على سبيل المثال، نقل شكل إلى وسط الصفحة أو تكبيره ليكون بعرض معيّن.
يمكن عادةً التعبير عن عمليات التحويل المعقدة على أنّها تسلسل من عمليات التحويل البسيطة. يمكن أن يؤدي احتساب التحويل مسبقًا إلى تقليل الوقت المستغرَق في العمليات الحسابية غير الضرورية، وذلك من خلال دمج عمليات تحويل متعددة باستخدام ضرب المصفوفات.
بالنسبة إلى بعض العمليات، يجب معرفة مَعلمات التحويل الحالية للعنصر. إذا لم تكن لديك هذه القيم، يمكنك استردادها باستخدام طلب presentations.pages.get.
ترجمة
النقل هو ببساطة نقل عنصر صفحة إلى موضع جديد في الصفحة نفسها. تنقل الترجمات المطلقة العنصر إلى نقطة معيّنة، بينما تنقل الترجمات النسبية العنصر مسافة معيّنة.
يكون شكل مصفوفة التحويل الأساسية للترجمة على النحو التالي:
عند استخدام UpdatePageElementTransformRequest لترجمة عنصر (بدون تغيير حجمه أو تمزقه أو اتجاهه)، يمكنك استخدام إحدى البنى التالية AffineTransform:
// Absolute translation: { 'transform': { 'scaleX': current scaleX value, 'scaleY': current scaleY value, 'shearX': current shearX value, 'shearY': current shearY value, 'translateX': X coordinate to move to, 'translateY': Y coordinate to move to, 'unit': 'EMU' // or 'PT' } } // Relative translation (scaling must also be provided to avoid a matrix multiplication error): { 'transform': { 'scaleX': 1, 'scaleY': 1, 'translateX': X coordinate to move by, 'translateY': Y coordinate to move by, 'unit': 'EMU' // or 'PT' } }
التحجيم
تغيير الحجم هو تمديد عنصر أو تضييق حجمه على طول السمتَين X و/أو Y لتغيير حجمه. يكون شكل مصفوفة التحويل الأساسية للتوسيع على النحو التالي:
يمكنك استخدام شكل المصفوفة هذا مباشرةً كتحويل RELATIVE
لتغيير حجم
العنصر، ولكن يمكن أن يؤثر ذلك أيضًا في القص والترجمة المعروضَين للعنصر.
لتكبير العنصر بدون التأثير في تمزّقه أو ترجمته، انقل إلى
إطاره المرجعي.
تدوير
تعمل عمليات التحويل الدوراني على تدوير عنصر الصفحة حول نقطة معيّنة باستخدام مَعلمتَي التكبير والتصغير والانحراف. تتّخذ مصفوفة التحويل الأساسية للّفة الشكل التالي، حيث يتم قياس زاوية الالتفاف (بالراديان) من محور X، مع التحرك باتجاه عقارب الساعة:
كما هو الحال مع التكبير/التصغير، يمكنك استخدام نموذج المصفوفة هذا مباشرةً كRELATIVE
تحويل لتدوير عنصر، ولكن يؤدي ذلك إلى تدوير العنصر
حول نقطة الأصل للصفحة. لتدوير العنصر حول مركزه أو
نقطة مختلفة،
انتقِل إلى هذا الإطار المرجعي.
انعكاس الإضاءة
تعكس هذه العملية عنصرًا على طول خط أو محور معيّن. إنّ مصفوفة التحويل الأساسية للانعكاس على محورَي x وy لها الشكلان التاليان:
كما هو الحال مع التكبير/التصغير، يمكنك استخدام نموذج المصفوفة هذا مباشرةً كعملية RELATIVE
تحويل لعرض عنصر، ولكن يؤدي ذلك إلى ترجمة العنصر أيضًا. لعرض العنصر بدون أيّ ترجمة،
انقل إلى إطاره المرجعي.
إطارات مرجعية للعناصر
يؤدي تطبيق عملية تحويل أساسية للتصغير أو الانعكاس أو الدوران مباشرةً على عنصر الصفحة إلى إجراء عملية تحويل في الإطار المرجعي للصفحة. على سبيل المثال، يؤدي الالتفاف الأساسي إلى تدوير العنصر حول نقطة أصل الصفحة (الزاوية العلوية اليسرى). ومع ذلك، يمكنك العمل في الإطار المرجعي لل العنصر نفسه، على سبيل المثال لتدوير عنصر حول نقطة مركزه.
لتحويل عنصر ضمن إطار مرجعي خاص به، احطِط العنصر بين
تحوُّلَين آخرين: تحوُّل سابق T1
ينقل مركز العنصر
إلى منشأ الصفحة، وتحوُّل لاحق T2
ينقل العنصر
إلى موضعه الأصلي. يمكن التعبير عن العملية الكاملة على أنّها حاصل ضرب في مصفوفة:
يمكنك أيضًا التبديل إلى أطر مرجعية أخرى، عن طريق ترجمة نقاط مختلفة إلى المصدر بدلاً من ذلك. وتصبح هذه النقاط مركز الإطار المرجعي الجديد.
من الممكن تنفيذ كلّ من عمليات التحويل هذه بشكلٍ فردي كطلبات RELATIVE
تحويل متسلسلة. من الأفضل احتساب
A'
أعلاه مسبقًا باستخدام عمليات ضرب المصفوفات وتطبيق النتيجة كعملية تحويل
ABSOLUTE
واحدة. بدلاً من ذلك، يمكنك احتساب منتج T2 * B * T1
مسبقًا
وتطبيقه كتحويل RELATIVE
واحد. إنّ كلاهما أكثر فعالية،
من حيث عمليات واجهة برمجة التطبيقات، مقارنةً بإرسال طلبات التحويل بشكلٍ فردي.
القيود
لا تتوافق بعض حقول الحجم والموضع مع بعض أنواع عناصر الصفحة. يلخِّص الجدول التالي توافق عناصر الصفحة مع حقول الحجم والوضع.
الحقل | شكل | فيديو | جدول |
---|---|---|---|
الترجمة | ✔ | ✔ | ✔ |
المقياس | ✔ | ✔ | لا** |
القص | ✔ | لا | لا |
** لتعديل سمات صفوف وأعمدة الجدول، استخدِم
UpdateTableRowPropertiesRequest
و
UpdateTableColumnPropertiesRequest
.
قد تؤدي جميع حقول الحجم والموضع إلى نتائج غير متوقّعة إذا كان عنصر الصفحة يتضمّن تمويهًا. وتخضع جميع القيود للتغيير. للحصول على معلومات محدّثة، يُرجى الاطّلاع على Google Slides API.
قد تعيد واجهة برمجة التطبيقات Slides API تنظيم قيمك.
عند إنشاء عنصر صفحة، يمكنك تحديد حجم وتحويله لتوفير نتيجة مرئية معيّنة. ومع ذلك، قد تستبدل واجهة برمجة التطبيقات القيمة التي تقدّمها بقيمة أخرى تؤدي إلى ظهور المظهر المرئي نفسه. بشكل عام، إذا كتبت حجمًا باستخدام واجهة برمجة التطبيقات، لا يمكن ضمان عرض الحجم نفسه. ومع ذلك، من المفترض أن تحصل على النتائج نفسها إذا أخذت عملية التحويل في الاعتبار.