আকার এবং অবস্থান পৃষ্ঠা উপাদান, আকার এবং অবস্থান পৃষ্ঠা উপাদান

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

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

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

ApplyMode ব্যবহার করে রূপান্তর করা যেতে পারে:

  • ABSOLUTE ট্রান্সফর্মগুলি এলিমেন্টের বিদ্যমান ট্রান্সফর্মেশন ম্যাট্রিক্সকে প্রতিস্থাপন করে । ট্রান্সফর্ম আপডেট অনুরোধ থেকে আপনি যে কোনও প্যারামিটার বাদ দেন তা শূন্যে সেট করা হয়।

  • RELATIVE রূপান্তরগুলিকে উপাদানের বিদ্যমান রূপান্তর ম্যাট্রিক্সের সাথে গুণ করা হয় (গুণনের ক্রম গুরুত্বপূর্ণ):

$$A' = BA$$

আপেক্ষিক রূপান্তর পৃষ্ঠা উপাদানটিকে যেখানে আছে সেখান থেকে সরানো বা স্কেল করা। উদাহরণস্বরূপ, একটি আকৃতিকে ১০০ পয়েন্ট বাম দিকে সরানো, অথবা ৪০ ডিগ্রি ঘোরানো। পরম রূপান্তর বিদ্যমান অবস্থান এবং স্কেল তথ্য বাতিল করে দেয়; উদাহরণস্বরূপ, একটি আকৃতিকে পৃষ্ঠার কেন্দ্রে সরানো, অথবা একটি নির্দিষ্ট প্রস্থে স্কেল করা।

জটিল রূপান্তরগুলিকে সাধারণত সরল রূপান্তরের ক্রম হিসাবে প্রকাশ করা যেতে পারে। একটি রূপান্তরের পূর্ব-গণনা করা - ম্যাট্রিক্স গুণ ব্যবহার করে একাধিক রূপান্তর একত্রিত করা - প্রায়শই ওভারহেড কমাতে পারে।

কিছু অপারেশনের জন্য, আপনাকে অবশ্যই একটি এলিমেন্টের বিদ্যমান ট্রান্সফর্ম প্যারামিটারগুলি জানতে হবে। যদি আপনার কাছে এই মানগুলি না থাকে, তাহলে আপনি 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 Slides API দেখুন।

পুনঃবিন্যস্ত মান

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