কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে কনভেক্স পলিগন চেক করা


কনভেক্স পলিগন

একটি কনভেক্স পলিগন হলো এমন একটি পলিগন যেটির সকল ইন্টিরিয়র এ্যাঙ্গেল ১৮০°-র চেয়ে কম।

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি কোঅর্ডিনেট অ্যারে (প্রতিটি সাবঅ্যারে দুই সংখ্যা ধারণ করে, ২-ডি প্লেনের একটি পয়েন্ট) ইনপুট হিসেবে নেবে। ফাংশনটি নির্ধারণ করবে এই পয়েন্টগুলো থেকে গঠিত পলিগনটি কনভেক্স কিনা। হ্যাঁ হলে true, নাহলে false রিটার্ন করবে।

উদাহরণ:

const arr = [[0,0],[0,1],[1,1],[1,0]];

আউটপুট হবে:

const output = true;

আউটপুট ব্যাখ্যা:

এই পয়েন্টগুলো একটি পারফেক্ট স্কোয়ার বানায় যেখানে সব ভার্টেক্সের ইন্টিরিয়র এ্যাঙ্গেল ৯০ ডিগ্রি।

উদাহরণ

কোডটি নিচের মতো (ক্রস প্রোডাক্ট ব্যবহার করে):

const arr = [[0,0],[0,1],[1,1],[1,0]]; const isConvex = (arr = []) => { const { length } = arr; let pre = 0, curr = 0; for (let i = 0; i < length; ++i) { let dx1 = arr[(i + 1) % length][0] - arr[i][0]; let dx2 = arr[(i + 2) % length][0] - arr[(i + 1) % length][0]; let dy1 = arr[(i + 1) % length][1] - arr[i][1]; let dy2 = arr[(i + 2) % length][1] - arr[(i + 1) % length][1]; curr = dx1 * dy2 - dx2 * dy1; if (curr != 0) { if ((curr > 0 && pre < 0) || (curr < 0 && pre > 0)) return false; else pre = curr; }; }; return true; }; console.log(isConvex(arr));

আউটপুট

কনসোলে আউটপুট:

true

  1. জাভাস্ক্রিপ্ট Let কীওয়ার্ড

  2. জাভাস্ক্রিপ্টে ডাবলটন নম্বর (Doubleton Number) যাচাই করা

  3. জাভাস্ক্রিপ্টে বিশেষ সংখ্যা যাচাই করা

  4. জাভাস্ক্রিপ্টে নির্দিষ্ট ধরণের ম্যাট্রিক্স যাচাই