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

দুটি ভিন্ন উপায় আছে যা আপনি পেতে এবং একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান পরিবর্তন করতে পারেন:

  1. আকার এবং অবস্থানের জন্য এর গেটার এবং সেটার ফাংশন ব্যবহার করে।
  2. অন্তর্নিহিত আকার সংরক্ষণ করার সময় এর getTransform() এবং setTransform() ফাংশন ব্যবহার করে এর affine রূপান্তরকে ম্যানিপুলেট করা।

পৃষ্ঠা উপাদান বৈশিষ্ট্য পড়া

সাইজিং এবং ঘূর্ণন

চিত্রে দেখানো হয়েছে, রেন্ডার করা পৃষ্ঠার উপাদানের বাউন্ডিং বক্সের ক্ষেত্রে আকার এবং অবস্থান পরিমাপ করা হয় যখন এটির কোন ঘূর্ণন নেই:

  • বাম এবং উপরে : পৃষ্ঠার উপরের বাম কোণ থেকে অপরিবর্তিত বাউন্ডিং বাক্সের উপরের বাম কোণে পরিমাপ করা হয়। মান পড়তে getLeft() এবং getTop() ব্যবহার করুন।
  • প্রস্থ এবং উচ্চতা : আনরোটেড বাউন্ডিং বাক্সের প্রস্থ এবং উচ্চতা। মান পড়তে getWidth() এবং getHeight() ব্যবহার করুন।
  • ঘূর্ণন : বাউন্ডিং বাক্সের কেন্দ্রের চারপাশে উল্লম্ব রেখার সাপেক্ষে ঘড়ির কাঁটার দিকে ঘূর্ণন। মান পড়তে getRotation() ব্যবহার করুন।

সমস্ত দৈর্ঘ্য বিন্দুতে পরিমাপ করা হয় (pt)। ঘূর্ণন ডিগ্রী (°) এ পরিমাপ করা হয়।

পৃষ্ঠা উপাদান বৈশিষ্ট্য সেট করা

আপনি একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান সেট করতে পারেন যখন আপনি একটি সন্নিবেশ পদ্ধতি যেমন insertShape() ব্যবহার করে এটি তৈরি করেন। একটি বিদ্যমান আকৃতির জন্য, আপনি আকার, অবস্থান এবং ঘূর্ণন সেট করতে পারেন; আপনি একটি উপাদানের আকার পরিবর্তন করতে বা এটির একটি প্রান্ত বরাবর প্রতিফলিত করার জন্য একটি উপাদানের স্কেলিং সেট করতে পারেন।

সৃষ্টিতে

একটি পৃষ্ঠা উপাদান তৈরি করার সময় আপনি অবস্থান এবং আকারের তথ্য প্রদান করতে পারেন।

var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
Logger.log('Left: ' + shape.getLeft() + 'pt; Top: '
                    + shape.getTop() + 'pt; Width: '
                    + shape.getWidth() + 'pt; Height: '
                    + shape.getHeight() + 'pt; Rotation: '
                    + shape.getRotation() + ' degrees.');

উপরের স্ক্রিপ্টটি নির্দিষ্ট অবস্থান এবং আকার সহ সক্রিয় উপস্থাপনার প্রথম স্লাইডে একটি আকৃতি তৈরি করে এবং আকৃতির অবস্থান এবং আকারের তথ্য পড়ে। প্রত্যাশিত লগ হল:

Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.

আকার, অবস্থান, এবং ঘূর্ণন

আপনি তৈরি করার পরে একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান আপডেট করতে পারেন:

  • আনরোটেড বাউন্ডিং বক্সের উপরের বাম কোণের অবস্থান সেট করতে setLeft() এবং setTop() ব্যবহার করুন।
  • বাউন্ডিং বাক্সের রেন্ডার করা প্রস্থ এবং উচ্চতা সেট করতে setWidth() এবং setHeight() ব্যবহার করুন।
  • এর কেন্দ্রের চারপাশে বাউন্ডিং বাক্সের ঘড়ির কাঁটার ঘূর্ণন সেট করতে setRotation() ব্যবহার করুন।

নিম্নলিখিত স্ক্রিপ্টটি সক্রিয় উপস্থাপনার প্রথম স্লাইডে একটি আকৃতি তৈরি করে, সেটির অবস্থান, আকার এবং ঘূর্ণন আপডেট করতে সেটার ব্যবহার করে এবং আকৃতির অবস্থান এবং আকারের তথ্য পড়ে।

var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setLeft(100).setTop(200).setWidth(50).setHeight(60).setRotation(90);
Logger.log('Left: ' + shape.getLeft()
                    + 'pt; Top: ' + shape.getTop()
                    + 'pt; Width: ' + shape.getWidth()
                    + 'pt; Height: ' + shape.getHeight()
                    + 'pt; Rotation: ' + shape.getRotation() + '\u00B0.');

এই স্ক্রিপ্ট থেকে প্রত্যাশিত লগ আউটপুট নীচে দেখানো হয়েছে:

Left: 100pt; Top: 200pt; Width: 50pt; Height: 60pt; Rotation: 90°.

আকার, অবস্থান, এবং ঘূর্ণন সেটার যে কোনো ক্রম বা সংমিশ্রণে ব্যবহার করা যেতে পারে। উপরের তৃতীয় লাইনটিকে নিম্নলিখিত স্ক্রিপ্ট দিয়ে প্রতিস্থাপন করলে একই ফলাফল আসবে:

shape.setWidth(55);
shape.setRotation(90).setHeight(60).setLeft(100);
shape.setWidth(50).setTop(200);

স্কেলিং

আকৃতির আকার একটি পরম মান সেট করার জন্য উপরে setWidth() এবং setHeight() ব্যবহার করার পরিবর্তে, scaleWidth() এবং scaleHeight() একটি আপেক্ষিক স্কেলিং ফ্যাক্টর সহ একটি পৃষ্ঠা উপাদান প্রসারিত বা চেপে ব্যবহার করা যেতে পারে।

shape.scaleHeight(0.5).scaleWidth(2);

নিচের চিত্রে দেখানো হয়েছে কিভাবে উপরের কোডটি 45°-ঘোরানো বর্গাকার আকৃতিতে কাজ করে। লক্ষ্য করুন যে বাউন্ডিং বাক্সের উপরের বাম কোণটি স্কেলিং করার সময় স্থির করা হয়েছে।

স্লাইড স্কেলিং

প্রান্ত বরাবর প্রতিফলন

scaleWidth() এবং scaleHeight() এর আর্গুমেন্ট নেতিবাচক হতে পারে যাতে সেগুলি অনুভূমিকভাবে বা উল্লম্বভাবে একটি পৃষ্ঠা উপাদান ফ্লিপ করতে ব্যবহার করা যেতে পারে।

shape.scaleWidth(-1); // Flip horizontally along the left edge of the bounding box.
shape.scaleHeight(-1); // Flip vertically along the top edge of the bounding box.

নিচের চিত্রে দেখানো হয়েছে কিভাবে উপরের কোডটি 45°-ঘূর্ণিত আকারে কাজ করে। মনে রাখবেন যে পৃষ্ঠা উপাদানটি তার বাউন্ডিং বাক্সের একটি প্রান্ত বরাবর উল্টানো হয়েছে কিন্তু এর কেন্দ্রে নয়।

স্লাইড প্রতিফলন

লাইন ঘূর্ণন

অন্যান্য পৃষ্ঠা উপাদানগুলির মতো, একটি লাইনের ঘূর্ণন লাইনের উল্লম্ব কোণ নয়, তবে এটির আবদ্ধ বাক্সের ঘূর্ণন। আপনি যখন নির্দিষ্ট শুরু এবং শেষ বিন্দু সহ একটি লাইন তৈরি করেন, তখন এর ঘূর্ণন সর্বদা 0° হয়। Google স্লাইডস UI-তে লাইনের শেষ বিন্দুগুলি টেনে আনলে এর উল্লম্ব কোণের পাশাপাশি এর আবদ্ধ বাক্সের আকার এবং অবস্থান পরিবর্তন হয়, কিন্তু এটির ঘূর্ণন পরিবর্তন করে না। setRotation() ব্যবহার করে লাইনের বাউন্ডিং বক্স ঘোরে, যা কার্যকরভাবে এর উল্লম্ব কোণ পরিবর্তন করে। তাই দুটি লাইনের একই ভিজ্যুয়াল উল্লম্ব কোণ থাকতে পারে, কিন্তু বিভিন্ন বাউন্ডিং বাক্স এবং তাই বিভিন্ন আকার, অবস্থান এবং ঘূর্ণন মান।

সীমাবদ্ধতা

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

পদ্ধতি আকৃতি ভিডিও টেবিল
getHeight(), getWidth() NO (শূন্য ফেরত)
setHeight(), setWidth() না
সেট ঘূর্ণন() না না
স্কেল উচ্চতা(), স্কেল প্রস্থ() না

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

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

উন্নত নিয়ন্ত্রণের জন্য, একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান তার অন্তর্নিহিত (নেটিভ) আকার এবং affine রূপান্তরের মাধ্যমে গণনা এবং সামঞ্জস্য করা যেতে পারে।

Google Apps স্ক্রিপ্ট Google স্লাইড API হিসাবে affine ট্রান্সফর্ম ব্যবহার করার জন্য অনুরূপ ইন্টারফেস প্রদান করে।

  • পড়ার জন্য, এই নিবন্ধটি অ্যাফাইন ট্রান্সফর্মের ধারণাগুলি ব্যাখ্যা করে এবং কীভাবে অন্তর্নিহিত (নেটিভ) আকার থেকে রেন্ডার করা আকার অনুমান করা যায় এবং পৃষ্ঠা উপাদানগুলির জন্য রূপান্তর করা যায়। অ্যাপস স্ক্রিপ্টে, ব্যবহার করুন
    • পৃষ্ঠা উপাদানগুলির নেটিভ আকারের জন্য getInherentWidth() এবং getInherentHeight() ;
    • getTransform() পৃষ্ঠা উপাদানগুলির affine রূপান্তরের জন্য।
  • লেখার জন্য, এই নিবন্ধটি বর্ণনা করে যে কীভাবে অ্যাফাইন ট্রান্সফর্ম ব্যবহার করে স্কেলিং, ঘূর্ণন, প্রতিফলন ইত্যাদি অর্জন করতে পৃষ্ঠার উপাদানের আকার এবং অবস্থান করা যায়। অ্যাপস স্ক্রিপ্টে, ব্যবহার করুন
    • setTransform() পৃষ্ঠার উপাদানগুলির affine রূপান্তর সেট করতে (ABSOLUTE মোডের অনুরূপ);
    • preconcatenateTransform() একটি affine ট্রান্সফর্মকে পৃষ্ঠার উপাদানগুলির বর্তমান রূপান্তরের সাথে প্রাক-সংযুক্ত করতে (RELATIVE মোডের অনুরূপ)।

নিম্নলিখিত স্ক্রিপ্ট একটি আকৃতি তৈরি করে, তার রূপান্তর সেট করে, এর অন্তর্নিহিত আকার পড়ে এবং এর affine রূপান্তর পড়ে।

var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setTransform(SlidesApp.newAffineTransformBuilder()
                   .setScaleX(2)
                   .setScaleY(1)
                   .setTranslateX(100)
                   .setTranslateY(200)
                   .build());
Logger.log('Inherent width: ' + shape.getInherentWidth()
                              + 'pt; Inherent height: '
                              + shape.getInherentHeight() + 'pt.');

এই স্ক্রিপ্ট থেকে প্রত্যাশিত লগ আউটপুট নীচে দেখানো হয়েছে:

Inherent width: 236.2pt; Inherent height: 236.2pt.

ফলস্বরূপ আকৃতিতে নিম্নলিখিত রূপান্তর এবং রেন্ডার করা আকার এবং অবস্থান থাকবে:

AffineTransform{scaleX=2.0, scaleY=1.0, shearX=0.0, shearY=0.0, translateX=100.0, translateY=200.0}
Left: 100pt; Top: 200pt; Width: 472.4pt; Height: 236.2pt; Rotation: 0°.