কম্পিউটার

জাভাস্ক্রিপ্টে উত্তল বহুভুজ পরীক্ষা করা হচ্ছে


উত্তল বহুভুজ

একটি উত্তল বহুভুজ একটি বহুভুজ হিসাবে সংজ্ঞায়িত করা হয়৷ এর সমস্ত অভ্যন্তরীণ কোণ 180° এর কম।

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা স্থানাঙ্কের একটি অ্যারে নেয়, মূলত অ্যারেটি অ্যারেগুলির একটি অ্যারে হবে প্রতিটি সাবয়ারেতে ঠিক দুটি সংখ্যা থাকবে, একটি 2-ডি সমতলে একটি বিন্দু নির্দিষ্ট করে৷

আমাদের ফাংশন নির্ধারণ করা উচিত যে এই বিন্দুগুলি দ্বারা গঠিত বহুভুজটি একটি উত্তল বহুভুজ কিনা। যদি হ্যাঁ, ফাংশনটি সত্য ফেরত দেওয়া উচিত, অন্যথায় মিথ্যা।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

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

তারপর আউটপুট −

হওয়া উচিত
const output = true;

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

এই বিন্দুগুলি একটি নিখুঁত বর্গক্ষেত্র আঁকবে যেখানে সমস্ত শীর্ষের অভ্যন্তরীণ কোণ 90।

উদাহরণ

এর জন্য কোড হবে −

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. জাভাস্ক্রিপ্ট চলুন

  2. জাভাস্ক্রিপ্টে একটি ডাবলটন নম্বর পরীক্ষা করা হচ্ছে

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

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