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

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

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

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 आपकी वैल्यू में बदलाव कर सकता है

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