মূল বিষয়বস্তু
কোর্স: কম্পিউটার প্রোগ্রামিং > অধ্যায় 4
পাঠ 6: রূপান্তরএকাধিক রূপান্তর
এখন আমরা স্থানান্তর (translation), ঘূর্ণন (rotation) এবং পরিমাপের পরিবর্তন তথা স্কেলিং (scaling) এর মৌলিক বিষয়গুলো জানি, এবার এগুলো একসাথে ব্যবহারের চেষ্টা করি এবং এর জটিলতা সম্পর্কে শিখি।
ক্রম বজায় রাখা গুরুত্বপূর্ণ
একাধিকবার পরিবর্তন (transformation) করলে ক্রমের দিকে খেয়াল রাখা গুরুত্বপূর্ণ। একটি ঘূর্ণনের পর স্থানান্তর এবং তারপর স্কেলিং করলে যে ফল পাওয়া যাবে তা একটি স্থানান্তরের পর ঘূর্ণন এবং স্কেলিং এর ফলাফল থেকে আলাদা হবে। উদাহরণস্বরূপ নিচের এই প্রোগ্রামটি দেওয়া হল:
প্রত্যাশিত ফলাফলের উপর ভিত্তি করে এই ক্রম বজায় রাখতে হয়। শুধু একটি কথা মনে রাখতে হবে যে, আমরা বস্তুটিকে নয় বরং ছক কাগজ স্থানান্তর করছি এবং নিজের কাজ মোতাবেক সঠিক ক্রম বের করে নিতে হবে।
পরিবর্তন (transformation) ম্যাট্রিক্স
প্রতিবার ঘূর্ণন, স্থানান্তর, অথবা স্কেলিং এর সময়, যে তথ্যের প্রয়োজন হয় সেটা একটি সংখ্যার টেবিলসারণীতে থাকে। এই সারণি, অথবা ম্যাট্রিক্সে শুধুমাত্র কয়েকটি সারি এবং কলাম আছে, তবুও, পরিবর্তনের জন্য গণিতের যাদুকরী প্রক্রিয়ায়, এটির মধ্যে সকল তথ্যই থাকে। একারণেই
pushMatrix()
এবং popMatrix()
এর মধ্যে ম্যাট্রিক্স লেখাটি আছে।তাহলে push (পুশ) এবং pop (পপ) অংশটির নাম কোথা থেকে এসেছে? এই নামগুলো কম্পিউটারের বিজ্ঞানের একটি ধারণা থেকে এসেছে যাকে stack (স্ট্যাক) বলা হয়, এটা কফির দোকানে কফি প্রদানকারী কাঠামোর ট্রের মত। যখন কেউ স্ট্যাকে ট্রে রাখে, এটার ওজন কাঠামোটিকে চাপ দেয়। যখন কেউ ট্রে নেয়, সে স্ট্যাকের উপর থেকে নেয় এবং বাকি ট্রেগুলো পপ করে অর্থাৎ বেড়িয়ে আসে।
একইভাবে,
pushMatrix()
স্থানাঙ্ক ব্যবস্থার বর্তমান অবস্থাকে মেমোরির উপরে রাখে এবং popMatrix()
সেটা বের করে নেয়। আগের উদাহরণটিতে pushMatrix()
এবং popMatrix()
ব্যবহারের কারণ হল প্রত্যেকবার আঁকানোর আগে স্থানাঙ্ক ব্যবস্থাকে "পরিষ্কার" রাখা। বাকি সকল উদাহরণে, ওই দুইটি ফাংশনে কল করার দরকার হয় না কারণ পরে কোন পরিবর্তন করা হয়নি, কিন্তু এটা করলেও কোন ক্ষতি নেই। আসলে, প্রতিবার পরিবর্তনের সময়ই এটি ব্যবহার করা উচিত।আরও একটি ফাংশন রয়েছে যা হল
resetMatrix()
, এটা ম্যাট্রিক্সকে এর পূর্বাবস্থায় ফেরত নিয়ে যায় (যেমন "অভেদক ম্যাট্রিক্স"), কিন্তু সবচেয়ে উপযুক্ত হল পুশ-পপ ফাংশন ব্যবহার করা।বীজগণিতে ম্যাট্রিক্স শিখতে চান? খান একাডেমির ম্যাট্রিক্স এর অনুশীলনী দেখা উচিত, বিশেষ করে, মাট্রিক্সের জ্যামিতিক পরিবর্তন অংশটি।
এই প্রবন্ধটি জে ডেভিড আইসেনবার্গ লিখিত দ্বিমাত্রিক পরিবর্তন এর আদলে তৈরি করা, যা ক্রিয়েটিভ কমন্সের এট্রিবিউশন-নন কমার্শিয়াল-শেয়ারএলাইক লাইসেন্সের অধিনস্ত।
আলোচনায় অংশ নিতে চাও?
কোন আলাপচারিতা নেই।