সাইজিং এবং পজিশনিং পৃষ্ঠা উপাদান

এই নির্দেশিকাটি বর্ণনা করে যে আপনি কীভাবে অ্যাফাইন ট্রান্সফর্ম ব্যবহার করে পৃষ্ঠার উপাদানের আকার এবং অবস্থান করেন। অ্যাফাইন ট্রান্সফর্মের ধারণাগত ভূমিকার জন্য, রূপান্তর ধারণা নির্দেশিকা দেখুন।

রূপান্তরকারী উপাদান

স্লাইডস API আপনাকে একটি পৃষ্ঠায় উপাদানগুলিকে পুনঃস্থাপন এবং স্কেল করতে দেয়। এটি করার জন্য, প্রথমে নির্ধারণ করুন কি ধরনের রূপান্তর প্রয়োগ করতে হবে, তারপর এক বা একাধিক UpdatePageElementTransformRequest উপাদান ধারণকারী presentations.batchUpdate পদ্ধতি ব্যবহার করে সেই রূপান্তরটি প্রয়োগ করুন।

দুটি প্রয়োগ মোডের একটিতে রূপান্তর করা যেতে পারে:

  • 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 রূপান্তর হিসাবে প্রয়োগ করুন। এগুলি উভয়ই আরও দক্ষ, API ক্রিয়াকলাপের পরিপ্রেক্ষিতে, তারপর পৃথকভাবে রূপান্তর অনুরোধগুলি প্রেরণ করে।

সীমাবদ্ধতা

কিছু সাইজিং এবং পজিশনিং ক্ষেত্র কিছু ধরণের পৃষ্ঠা উপাদানের সাথে বেমানান। নিচের সারণীটি সাইজিং এবং পজিশনিং ক্ষেত্রগুলির সাথে নির্দিষ্ট পৃষ্ঠা উপাদানগুলির সামঞ্জস্যের সারসংক্ষেপ করে৷

মাঠ আকৃতি ভিডিও টেবিল
অনুবাদ
স্কেল না**
শিয়ার না না

** টেবিল সারি এবং কলামের মাত্রা আপডেট করতে, UpdateTableRowPropertiesRequest এবং UpdateTableColumnPropertiesRequest ব্যবহার করুন।

সমস্ত সাইজিং এবং পজিশনিং ক্ষেত্র অপ্রত্যাশিত ফলাফল দিতে পারে যদি পৃষ্ঠা উপাদানের শিয়ারিং থাকে। সমস্ত সীমাবদ্ধতা পরিবর্তন সাপেক্ষে. আপ টু ডেট তথ্যের জন্য, Google স্লাইড API দেখুন।

স্লাইড এপিআই আপনার মানগুলিকে রিফ্যাক্টর করতে পারে

আপনি যখন একটি পৃষ্ঠা উপাদান তৈরি করেন, আপনি একটি আকার এবং রূপান্তর নির্দিষ্ট করতে পারেন যা একটি নির্দিষ্ট ভিজ্যুয়াল ফলাফল প্রদান করে। যাইহোক, API আপনার প্রদত্ত মানগুলিকে অন্য মানগুলির সাথে প্রতিস্থাপন করতে পারে যা একই দৃশ্যমান উপস্থিতি দেয়৷ সাধারণভাবে, যদি আপনি API ব্যবহার করে একটি আকার লেখেন, তাহলে আপনাকে একই আকার ফেরত দেওয়ার নিশ্চয়তা নেই। যাইহোক, আপনি যদি রূপান্তরকে বিবেচনায় নেন তবে আপনার একই ফলাফল পাওয়া উচিত।