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

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

एलिमेंट में बदलाव करना

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 आपकी वैल्यू को फिर से फ़ॉर्मैट कर सकता है

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