কম্পিউটার

পাইথনে আয়তক্ষেত্র ওভারল্যাপ


ধরুন এখানে একটি আয়তক্ষেত্র রয়েছে যা একটি তালিকা [x1, y1, x2, y2] হিসাবে উপস্থাপন করা হয়েছে, যেখানে (x1, y1) হল তার নীচে-বাম কোণের স্থানাঙ্ক এবং (x2, y2) হল তার উপরের স্থানাঙ্ক। ডানের কিনারা. এখন দুটি আয়তক্ষেত্র ওভারল্যাপ করে যদি তাদের ছেদটির ক্ষেত্রফল ধনাত্মক হয়। সুতরাং, আমরা বুঝতে পারি যে দুটি আয়তক্ষেত্র যা শুধুমাত্র কোণে বা প্রান্তে স্পর্শ করে ওভারল্যাপ হয় না।

যদি আমাদের দুটি (অক্ষ-সারিবদ্ধ) আয়তক্ষেত্র থাকে, তাহলে সেগুলি ওভারল্যাপ করছে কিনা তা আমাদের পরীক্ষা করতে হবে।

সুতরাং, যদি ইনপুট হয় R1 =[0,0,2,2], R2 =[1,1,3,3], তাহলে আউটপুট হবে True।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি R1[0]>=R2[2] বা R1[2]<=R2[0] বা R1[3]<=R2[1] বা R1[1]>=R2[3], তাহলে
    • মিথ্যে ফেরত দিন
  • অন্যথায়,
    • সত্য ফেরান

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def isRectangleOverlap(self, R1, R2):
      if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or
         (R1[1]>=R2[3]):
         return False
      else:
   return True
ob = Solution()
print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))

ইনপুট

[0,0,2,2],[1,1,3,3]

আউটপুট

True

  1. চারটি পূর্ণসংখ্যা (বা বাহু) পাইথনে আয়তক্ষেত্র তৈরি করে কিনা তা পরীক্ষা করুন

  2. পাইথনে একটি আয়তক্ষেত্রের উপর বা ভিতরে একটি বিন্দু আছে কিনা তা পরীক্ষা করুন

  3. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়তক্ষেত্র

  4. পাইথনে IsNumber() ফাংশন প্রয়োগ করুন