একটি চতুষ্কোণ কী এবং তারা কীভাবে কাজ করে? এছাড়াও, 2 ডি বিমানে আপনি তিনটি পয়েন্ট ব্যবহার করে কী সুবিধা পাবেন? অবশেষে, কখন চতুর্থাংশ ব্যবহার করা ভাল অনুশীলন হিসাবে বিবেচনা করা হয়?
একটি চতুষ্কোণ কী এবং তারা কীভাবে কাজ করে? এছাড়াও, 2 ডি বিমানে আপনি তিনটি পয়েন্ট ব্যবহার করে কী সুবিধা পাবেন? অবশেষে, কখন চতুর্থাংশ ব্যবহার করা ভাল অনুশীলন হিসাবে বিবেচনা করা হয়?
উত্তর:
গাণিতিকভাবে, একটি চৌম্বকটি 4 টি মাত্রা সহ একটি জটিল সংখ্যা। তবে গেম ডেভেলপমেন্টে, কোয়ার্ট্রিনগুলি প্রায়শই 3 ডি স্পেসে আবর্তনকে এনকড করে বর্ণনা করতে ব্যবহৃত হয়:
নোট করুন যে এই তথ্যটি কোয়ার্টেরিয়নের অভ্যন্তরে সাইনস এবং কোসাইনগুলি সহ এনকোডড রয়েছে, সুতরাং সাধারণভাবে আপনি পৃথকভাবে কোয়ার্টেরিয়নের অভ্যন্তরীণ উপাদানগুলি (xyzw) সেট করার বা পড়ার চেষ্টা করবেন না। সেভাবে ভুল করা এবং অর্থহীন ফলাফল পাওয়া সহজ। কোয়ার্টারিয়ন গণিতের পাঠাগারটি সাধারণত কোয়ার্ট্রিয়নে কাজ করার জন্য ফাংশন সরবরাহ করে (উদাহরণস্বরূপ এগুলিকে আঙ্গুলের কোণ এবং অক্ষ-কোণে রূপান্তর করে), যা গণিতটি সঠিক কিনা তা নিশ্চিত করে এবং আপনার কোডটি পড়তে ও বুঝতে সহজ করার পার্শ্ব সুবিধা রয়েছে।
ঘূর্ণন বর্ণনা করার একটি বিকল্প উপায় হ'ল 3 স্থির অক্ষের x, y এবং z (ওরফে ইউলার অ্যাঙ্গেল) কত ঘুরতে হবে তা বর্ণনা করে যা কেবল 4 এর পরিবর্তে 3 নম্বর প্রয়োজন এবং এটি ব্যবহারের জন্য আরও স্বজ্ঞাত। তবে, ইউলার-অ্যাঙ্গেলগুলি গিম্বল- লক নামক একটি সমস্যার সাপেক্ষে : আপনি যখন একটি অক্ষের চারপাশে 90। ঘোরান, তখন অন্য দুটি অক্ষ সমতুল্য হয়ে যায়। চতুর্দিকে, এই সমস্যাটি ঘটে না।
3 ডি স্পেসে রোটেশন প্রকাশের আর একটি উপায় 4x4 রূপান্তর ম্যাট্রিক্স সহ । তবে রূপান্তর ম্যাট্রিক্সের সাহায্যে আপনি কেবল ঘোরানো যায় না, স্কেল, অনুবাদ এবং স্কিউও করতে পারেন। আপনি যখন কেবল ঘূর্ণন চান , তখন একটি ম্যাট্রিক্স ওভারকিল এবং কোয়াটারিয়েন অনেক দ্রুত এবং সহজ সমাধান হতে পারে।
এই সমস্যাটি কেবলমাত্র 3 ডি স্পেসে প্রাসঙ্গিক। 2 ডি স্পেসে আপনার কাছে কেবল একটি ঘূর্ণন অক্ষ রয়েছে। যে কোনও আবর্তন একটি একক ভাসমান-পয়েন্ট নম্বর বা একটি একক জটিল সংখ্যা দিয়ে প্রকাশ করা যেতে পারে, সুতরাং আপনার এই সমস্যা নেই। আপনি যখন তাত্ত্বিকভাবে একটি 2 ডি প্লেনে একটি কোয়ার্টেরন দিয়ে আবর্তনটি প্রকাশ করতে পারেন যেখানে অক্ষটি বিমানটিতে (বা বাইরে) পয়েন্ট করে, এটি সাধারণত ওভারকিল হয়।
এটি @ ফিলিপ এর উত্তর যোগ করা হয়।
এছাড়াও, 2 ডি বিমানে আপনি তিনটি পয়েন্ট ব্যবহার করে কী সুবিধা পাবেন?
আপনি সত্যিই কোয়াটেরনিয়ন প্রয়োজন হবে না যদি সব আপনি আগ্রহী আবর্তিত হয় উপর সমতল, অর্থাত্ সম্পর্কে Z অক্ষের। এই ক্ষেত্রে, আপনার যা দরকার তা হ'ল ইয়া কোণ এবং আপনি z অক্ষের যাত্রা সম্পর্কে ক্রমাগত ঘূর্ণন এই সত্যটি কাজে লাগাতে পারেন। সুতরাং আপনি আপনার আবর্তন আপনার যে কোনও ক্রম প্রয়োগ করতে পারেন।
আপনি যদি এক্সওয়াই প্লেন নয় এমন কোনও বিমানে ঘুরছেন তবে পরিস্থিতি আলাদা। এই ঘূর্ণনটি একটি স্বেচ্ছাসেবী 3D অক্ষকে ঘোরানোর সমতুল্য। এখন, আপনার দুটি পছন্দ আছে:
আপনার প্লেনটি 3 ডি তে ঘোরান যাতে এটি XY বিমানের সাথে মিলে যায় এবং তারপরে ইয়াও হয়ে যায় এবং ফিরে রূপান্তর করতে পারে, বা
আপনার ঘূর্ণনটি 3 ডি হিসাবে শুরু হওয়ার সাথে ভাবুন।
দ্বিতীয় পছন্দটি কোড করা সহজ। @ ফিলিপিস যেমন বলেছিল, চতুর্ভুজগুলি জিম্বল লক এড়িয়ে চলে (আপনি যদি মাঝারি আরপিওয়াই বা অক্ষ / কোণ রূপান্তর এড়ান)।
অবশেষে, কখন চতুর্থাংশ ব্যবহার করা ভাল অনুশীলন হিসাবে বিবেচনা করা হয়?
যখনই 3 ডি ঘূর্ণন হয়, কোয়ার্টারিয়ন ব্যবহার করা ভাল অনুশীলন।
উদাহরণ: