تغيير حجم عناصر الصفحة وتحديد موضعها

يصف هذا الدليل كيفية تحديد حجم عناصر الصفحة وتحديد موضعها باستخدام التقارب تتحولات. للحصول على مقدمة مفاهيمية حول التحولات الارتباطية، اطّلِع على دليل مفاهيم الإحالات الناجحة.

تحويل العناصر

تتيح لك Slides API تغيير موضع العناصر وضبطها على الصفحة. للقيام بذلك، عليكم أولاً تحديد نوع التحويل الذي يجب تطبيقه، ثم تطبيق تتحول باستخدام presentations.batchUpdate طريقة تحتوي على واحد أو أكثر UpdatePageElementTransformRequest عناصر.

يمكن إجراء التحويل في واحد من اثنين applyModes:

  • ABSOLUTE يحوّل استبدال العنصر الحالي ومصفوفة. يتم ضبط أي معلمات حذفتها من طلب تعديل التحويل على صفر.

  • يتم ضرب عمليات تحويل RELATIVE مع العنصر الموجود في العنصر مصفوفة التحويل (ترتيب الضرب مهم):

$$A' = BA$$

تؤدي التحويلات النسبية إلى نقل عنصر الصفحة أو تغيير حجمه من مكانه الحالي؛ على سبيل المثال، تحريك شكل بمقدار 100 نقطة إلى اليسار أو تدويره بمقدار 40 درجة. تتجاهل التحويلات المطلقة معلومات الموضع والمقياس الحالية. حيث على سبيل المثال، نقل شكل إلى وسط الصفحة، أو تغيير حجمه ليصبح العرض المحدد.

ويمكن عادةً التعبير عن التحويلات المعقدة في صورة سلسلة من التحويلات البسيطة. الحساب المسبق للتحويل — وهو الجمع بين التحويلات المتعددة باستخدام ضرب المصفوفة — غالبًا ما يقلل من النفقات العامة.

بالنسبة لبعض العمليات، يجب أن تعرف ما التحويل الحالي لأحد العناصر المعاملات. إذا لم يكن لديك هذه القيم، يمكنك استردادها باستخدام presentations.pages.get طلبك.

ترجمة

الترجمة هي ببساطة نقل عنصر صفحة إلى موضع جديد على الصفحة ذاتها. تنقل الترجمات Absolute العنصر إلى نقطة معيّنة. بينما تنقل الترجمات النسبية العنصر مسافة معينة.

وتكون مصفوفة تحويل الترجمة الأساسية بالشكل التالي:

$$T=\begin{bmatrix} 1 & 0 & translate\_x\\ 0 & 1 & translate\_y\\ 0 & 0 & 1 \end{bmatrix}$$

عند استخدام دالة 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 لتغيير حجمه. وتكون مصفوفة تحويل التحجيم الأساسية بالشكل التالي:

$$S=\begin{bmatrix} scale\_x & 0 & 0\\ 0 & scale\_y & 0\\ 0 & 0 & 1 \end{bmatrix}$$

يمكنك استخدام نموذج المصفوفة هذا مباشرةً كتحويل RELATIVE لتغيير حجم العنصر، ولكن هذا يمكن أن يؤثر أيضًا على قص وترجمة العنصر المعروض. لتوسيع نطاق العنصر دون التأثير في قصه أو ترجمته، انتقل إلى الإطار المرجعي

الدوران

تؤدي تدويرات التدوير إلى تدوير عنصر صفحة حول نقطة، وذلك باستخدام الحجم معلمات القص. وتكون المصفوفة الأساسية لتحويل الدوران بالشكل التالي، حيث تُقاس زاوية الدوران (بوحدات الراديان) من المحور السيني، متحركًا عكس عقارب الساعة:

$$R=\begin{bmatrix} cos(\theta) & sin(\theta) & 0\\ -sin(\theta) & cos(\theta) & 0\\ 0 & 0 & 1 \end{bmatrix}$$

وكما هو الحال مع التحجيم، يمكنك استخدام نموذج المصفوفة هذا مباشرةً باعتباره RELATIVE التحويل لتدوير عنصر، ولكن هذا يتسبب في تدوير العنصر حول أصل الصفحة. لتدوير العنصر حول مركزه أو نقطة مختلفة، الانتقال إلى هذا الإطار المرجعي

انعكاس الإضاءة

يعكس الانعكاس عنصرًا عبر خط أو محور معين. الوظيفة الأساسية وتكون مصفوفة تحويل انعكاس المحور س والمحور ص على الشكل التالي:

$$F_x=\begin{bmatrix} 1 & 0 & 0\\ 0 & -1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}\qquad\qquad F_y=\begin{bmatrix} -1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}$$

وكما هو الحال مع التحجيم، يمكنك استخدام نموذج المصفوفة هذا مباشرةً باعتباره RELATIVE لتعكس عنصرًا، ولكن هذا يتسبب في ترجمة العنصر أيضًا. لتعكس العنصر بدون أي ترجمة، الانتقال إلى الإطار المرجعي

الإطارات المرجعية للعناصر

بتطبيق مقياس أساسي، التأمل، أو التحويل إلى صفحة مباشرةً من خلال عرض الإعلانات ينتج عنه تحويل في الإطار المرجعي للصفحة. على سبيل المثال: يؤدي التدوير الأساسي إلى تدوير العنصر حول أصل الصفحة (و الزاوية العلوية اليسرى). ومع ذلك، يمكنك العمل في الإطار المرجعي العنصر نفسه، على سبيل المثال لتدوير عنصر حول نقطة المركز.

لتحويل عنصر داخل إطاره المرجعي، احصره بين اثنين ترجمات أخرى: ترجمة سابقة T1 تنتقل إلى مركز العنصر إلى أصل الصفحة، والترجمة التالية T2 التي تنقل العنصر وإعادته إلى موضعه الأصلي. ويمكن التعبير عن العملية الكاملة في صورة مصفوفة المنتج:

$$A' = T2 \times B \times T1 \times A$$

يمكنك أيضًا التبديل إلى أُطر مرجعية أخرى من خلال ترجمة نقاط مختلفة إلى الأصل بدلاً من ذلك. تصبح هذه النقاط مركز المرجع الجديد. الإطار.

ومن الممكن إجراء كل عملية من هذه التحويلات على حدة طلبات تحويل RELATIVE التسلسلية. من الناحية المثالية، يجب أن تحسب مسبقًا A' أعلاه مع عمليات ضرب المصفوفات وتطبيق النتيجة على شكل مفرد تحويل ABSOLUTE. بدلاً من ذلك، يمكنك إجراء احتساب مسبق لمنتج T2 * B * T1. ونطبّق ذلك في عملية تحويل RELATIVE واحدة. كلاهما أكثر كفاءة، عمليات واجهة برمجة التطبيقات، ثم إرسال طلبات التحويل بشكل فردي.

القيود

بعض حقول تحديد الحجم وتحديد الموضع غير متوافقة مع بعض أنواع الصفحات عناصر. يلخص الجدول أدناه توافق بعض عناصر الصفحة مع حقول تحديد الحجم وتحديد الموضع.

الحقل شكل فيديو جدول
الترجمة
المقياس لا**
قصّة لا لا

** لتعديل سمات الصف والعمود في الجدول، استخدِم UpdateTableRowPropertiesRequest أو UpdateTableColumnPropertiesRequest

قد تعطي جميع حقول تحديد الحجم وتحديد الموضع نتائج غير متوقعة إذا كان عنصر الصفحة به قص. جميع القيود عرضة للتغيير. للحصول على أحدث المعلومات، يُرجى الاطّلاع على Google Slides API.

قد تُعيد واجهة برمجة تطبيقات "العروض التقديمية من Google" ترتيب القيم

عندما تنشئ عنصر صفحة، يمكنك تحديد حجم وتحويل وتوفر نتيجة مرئية معينة. مع ذلك، قد تحل واجهة برمجة التطبيقات محل البيانات مع قيم أخرى لها نفس المظهر المرئي. بشكل عام، إذا تكتب حجمًا باستخدام واجهة برمجة التطبيقات، فلا نضمن لك أن يتم إرجاعه بنفس الحجم. ومع ذلك، ينبغي أن تحصل على نفس النتائج إذا أجريت التحويل إلى الحساب.