पेज के एलिमेंट का साइज़ और पोज़िशन तय करना

इस गाइड में बताया गया है कि अफ़िलिएट ट्रांसफ़ॉर्म का इस्तेमाल करके, पेज के एलिमेंट का साइज़ और उनकी पोज़िशन कैसे तय की जाती है. बदलावों को बढ़ावा देने के कॉन्सेप्ट के बारे में जानने के लिए, ट्रांसफ़ॉर्म कॉन्सेप्ट की गाइड देखें.

एलिमेंट बदलना

Slides API की मदद से, किसी पेज पर एलिमेंट की पोज़िशन बदली जा सकती है और उन्हें स्केल किया जा सकता है. ऐसा करने के लिए, सबसे पहले यह तय करें कि किस तरह के बदलाव को लागू करना है. इसके बाद, presentations.batchUpdate तरीका इस्तेमाल करके, उस ट्रांसफ़ॉर्मेशन को लागू करें जिसमें एक या उससे ज़्यादा UpdatePageElementTransformRequest एलिमेंट शामिल हों.

इन दो तरीकों में से किसी एक में बदलाव किए जा सकते हैं applyModes:

  • ABSOLUTE, एलिमेंट के मौजूदा ट्रांसफ़ॉर्मेशन मैट्रिक्स को बदलें. जिन पैरामीटर को आपने ट्रांसफ़ॉर्म अपडेट के अनुरोध से छोड़ा है वे शून्य पर सेट हो जाते हैं.

  • RELATIVE ट्रांसफ़ॉर्मेशन को एलिमेंट के मौजूदा ट्रांसफ़ॉर्मेशन मैट्रिक्स (गुणा करने का क्रम अहम) के साथ गुणित किया जाता है:

$$A' = BA$$

रिलेटिव ट्रांसफ़ॉर्मेशन की मदद से, पेज एलिमेंट को मौजूदा जगह से मूव या स्केल किया जा सकता है. उदाहरण के लिए, आकार को 100 पॉइंट बाईं ओर ले जाना या उसे 40 डिग्री घुमाना. पूरी तरह से ट्रांसफ़ॉर्म करते समय, मौजूदा पोज़िशन और स्केल की जानकारी को खारिज कर दिया जाता है. उदाहरण के लिए, किसी आकार को पेज के बीच में ले जाना या उसे खास चौड़ाई के तौर पर स्केल करना.

कॉम्प्लेक्स ट्रांसफ़ॉर्मेशन को आम तौर पर आसान निर्देशों के क्रम के तौर पर दिखाया जा सकता है. ट्रांसफ़ॉर्म का प्रीकैलकुलेशन करने से—मैट्रिक्स गुणांक का इस्तेमाल करके कई ट्रांसफ़ॉर्मेशन को जोड़ना, अक्सर ओवरहेड को कम कर सकता है.

कुछ ऑपरेशन के लिए, आपको यह पता होना चाहिए कि किसी एलिमेंट के मौजूदा ट्रांसफ़ॉर्म पैरामीटर क्या हैं. अगर आपके पास ये वैल्यू नहीं हैं, तो उन्हें presentations.pages.get अनुरोध की मदद से फिर से पाया जा सकता है.

अनुवाद

अनुवाद का मतलब है, किसी पेज एलिमेंट को एक ही पेज पर नई जगह पर ले जाना. निरपेक्ष अनुवाद, एलिमेंट को एक खास पॉइंट पर ले जाते हैं, जबकि रिलेटिव अनुवाद, एलिमेंट को एक खास दूरी पर ले जाते हैं.

एक बुनियादी अनुवाद ट्रांसफ़ॉर्म मैट्रिक्स का यह रूप होता है:

$$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 को ट्रांसफ़ॉर्म करते समय इस मैट्रिक्स फ़ॉर्म का इस्तेमाल किया जा सकता है. हालांकि, इससे एलिमेंट के रेंडर किए गए शीयर और अनुवाद पर भी असर पड़ सकता है. एलिमेंट को स्केल करने के लिए, इसके शीयर या अनुवाद पर असर डाले बिना, इसके रेफ़रंस फ़्रेम पर शिफ़्ट करें.

घुमाव

रोटेशन ट्रांसफ़ॉर्मेशन की मदद से, स्केलिंग और शीयर पैरामीटर का इस्तेमाल करके, पेज एलिमेंट को किसी पॉइंट के चारों ओर घुमाया जाता है. बुनियादी रोटेशन ट्रांसफ़ॉर्म मैट्रिक्स का ऐसा फ़ॉर्मैट होता है जिसमें घुमाव के कोण (रेडियन में) को X-ऐक्सिस से मापा जाता है. यह घड़ी की उलटी दिशा में चलता है:

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

स्केलिंग की तरह ही, किसी एलिमेंट को घुमाने के लिए, इस मैट्रिक्स फ़ॉर्म का इस्तेमाल सीधे RELATIVE ट्रांसफ़ॉर्म के तौर पर किया जा सकता है. हालांकि, इससे एलिमेंट को पेज के ऑरिजिन के बारे में जानकारी मिलती है. एलिमेंट को इसके केंद्र या किसी दूसरे बिंदु के बारे में घुमाने के लिए, उस रेफ़रंस फ़्रेम पर शिफ़्ट करें.

खुद को पहचानें

रिफ़्लेक्शन, किसी खास लाइन या ऐक्सिस पर किसी एलिमेंट का डुप्लीकेट वर्शन बनाता है. बेसिक x- और y-ऐक्सिस रिफ़्लेक्शन ट्रांसफ़ॉर्म मैट्रिक्स के ये रूप हैं:

$$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 ट्रांसफ़ॉर्म के तौर पर लागू करें. एपीआई की कार्रवाई के हिसाब से, ये दोनों ज़्यादा असरदार हैं और ट्रांसफ़ॉर्म के अनुरोधों को अलग-अलग भेजते हैं.

सीमाएं

कुछ साइज़ और पोज़िशन तय करने वाले फ़ील्ड, पेज के कुछ खास तरह के एलिमेंट के साथ काम नहीं करते हैं. नीचे दी गई टेबल में, साइज़ और पोज़िशनिंग फ़ील्ड के साथ पेज के कुछ एलिमेंट के साथ काम करने के बारे में खास जानकारी दी गई है.

फ़ील्ड आकार वीडियो टेबल
Translation
स्केल नहीं**
शीयर नहीं नहीं

** टेबल की पंक्ति और कॉलम के डाइमेंशन अपडेट करने के लिए, UpdateTableRowPropertiesRequest और UpdateTableColumnPropertiesRequest का इस्तेमाल करें.

अगर पेज एलिमेंट में कटाई की गई है, तो साइज़ और पोज़िशन तय करने वाले सभी फ़ील्ड से अनचाहे नतीजे मिल सकते हैं. सभी सीमाओं में बदलाव हो सकता है. अप-टू-डेट जानकारी के लिए, Google Slides API देखें.

Slides API आपकी वैल्यू को फिर से काम का साबित कर सकता है

पेज एलिमेंट बनाते समय, साइज़ तय किया जा सकता है. साथ ही, उसे बदला जा सकता है, जिससे एक खास विज़ुअल नतीजा मिलता है. हालांकि, एपीआई आपकी दी गई वैल्यू को उन अन्य वैल्यू से बदल सकता है जो एक जैसे विज़ुअल दिखाती हैं. आम तौर पर, अगर एपीआई का इस्तेमाल करके साइज़ लिखा जाता है, तो इस बात की गारंटी नहीं दी जा सकती कि आपको उसी साइज़ का मिलेगा. हालांकि, अगर डेटा को खाते में बदला जाता है, तो आपको वही नतीजे मिलेंगे.