মূল বিষয়বস্তু
কম্পিউটার প্রোগ্রামিং
ত্রিমাত্রিক (3D) আকৃতি কী?
এই টিউটোরিয়ালটি পিটার কলিংগ্রিডের (Peter Collingridge) এবং এটা মূলত তার ওয়েবসাইটে প্রকাশিত হয়েছে।
খান একাডেমিতে প্রোগ্রামিং করলে সম্ভবত অনেকগুলো 2D (দ্বিমাত্রিক) আকৃতি আঁকা হয়েছে, যেমন আয়তক্ষেত্র সমূহ এবং উপবৃত্ত। হয়তো নিজে নিজেই আমরা ভেবেছি কীভাবে 3D (ত্রিমাত্রিক) আকৃতি আঁকা যায়, যেমন ঘন আকৃতির বস্তু এবং গোলক।
আসলে, ProcessingJS লাইব্রেরি 3D (ত্রিমাত্রিক) গ্রাফিক্স আঁকার জন্য নয়, কিন্তু ত্রিকোণমিতির সাহায্যে আমরা নিজেরাই 3D গ্রাফিক্স ইঞ্জিন তৈরি করতে পারি এবং এটা করার জন্য 3D গ্রাফিক্স কীভাবে কাজ করে তা জানতে হবে (এবং গণিতের শিক্ষককে খুশি করা ছাড়াও কেন ত্রিকোণমিতি শিখতে হবে তার কারণও আমরা জানবো)।
এখানে তৈরি করা যায় এমন একটি প্রোগ্রামের উদাহরণ আছে - মাউস ব্যবহার করে ডোনাটটিকে ঘোরানো যাকঃ
3D গ্রাফিক্স কী?
মূলত কম্পিউটারের স্ক্রিন দ্বিমাত্রিক, এজন্য 3D গ্রাফিক্স হল শুধুমাত্র 2D অপটিকাল ইলুসন অর্থাৎ দৃষ্টিবিভ্রম যা মস্তিস্ককে বোঝায় যে সে 3D তথা ত্রিমাত্রিক বস্তু দেখছে। নিচে একটি সহজ উদাহরণ দেওয়া হল:
একটি 2D আকৃতিকে পর্দায় কীভাবে 3D বস্তুতে দেখানো হবে সেটার হিসাব করাই 3D গ্রাফিক্স ইঞ্জিনের কাজ। এজন্য নিজেদের 3D গ্রাফিক্স ইঞ্জিন তৈরি করার জন্য জানতে হবে যে, কীভাবে সেই হিসাব করা হয়। আমাদের প্রোগ্রাম অবশ্য অন্যান্য 3D ইঞ্জিনের মতো দ্রুত হবেনা কিন্তু এটা আমাদের কাজের মূল প্রক্রিয়া বুঝতে সাহায্য করবে।
আকৃতির উপস্থাপনা
একটি 3D গ্রাফিক্স ইঞ্জিন একটি 3D বস্তুকে নিয়ে একটি 2D বস্তুতে রূপান্তরিত করে, কিন্তু আমরা কোডে কীভাবে একটি 3D বস্তুকে উপস্থাপন করবো?
ত্রিমাত্রিক ক্ষেত্রে একটি একক বিন্দুকে তিনটি সংখ্যার অ্যারে দিয়ে সহজেই প্রকাশ করা যায়। উদাহরণস্বরূপ, একটি বিন্দুকে প্রকাশ করার জন্য আমরা [30, 80, 55] অ্যারে ব্যবহার করে অনুভূমিক x অক্ষে 30 পিক্সেল, উল্লম্ব y অক্ষে 80 পিক্সেল এবং পর্দার ভেতরে ও বাহিরের দিকে 55 পিক্সেলে অবস্থিত একটি বিন্দুকে বোঝাই। নিচের বিন্দুগুলো নিয়ে পরীক্ষা করা যায়, মাউস দিয়ে ঘোরানো যায় এবং সংখ্যাগুলোকে পরিবর্তন করা যায়ঃ
সরলরেখাকে উপস্থাপন করা খুব সহজ: শুধুমাত্র দুইটি বিন্দু যুক্ত করে দিতে হয়। একটি অবজেক্টকে 3D তে উপস্থাপন করার উপায় হল, এটাকে দলবদ্ধ সরলরেখায় রূপান্তর করা। এটাকে বলা হয় wireframe (ওয়্যারফ্রেম), কারণ দেখে মনে হয় বস্তুটি তার (wire) দিয়ে তৈরি হয়েছে। এটা অবশ্য কঠিন বস্তুর উপস্থাপনের জন্য আদর্শ নয়, কিন্তু শুরুর জন্য এটা ভালো।
শব্দাবলী
নিচের কিছু শব্দাবলী আছে যা আমরা 3D আকৃতি বোঝানোর সময় ব্যবহার করবো। অন্য অনেক শব্দও ব্যবহার হতে পারে, কিন্তু এগুলো বেশি জনপ্রিয়।
- নোড (Node): একটি বিন্দু যা তিনটি স্থানাঙ্ক x, y এবং z কে নির্দেশ করে (vertex বা শীর্ষবিন্দু বলা হয়)।
- প্রান্ত (Edge): একটি সরলরেখা যা দুইটি বিন্দুকে যুক্ত করে।
- ফেস (Face): একটি সমতল যা কমপক্ষে তিনটি বিন্দু দিয়ে সংজ্ঞায়িত।
- ওয়্যারফ্রেম (Wireframe): একটি আকৃতি যা নোড এবং প্রান্ত দিয়ে গঠিত।
আলোচনায় অংশ নিতে চাও?
কোন আলাপচারিতা নেই।