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

পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

ধরুন আমাদের একটি অর্ডার্ড পয়েন্টের লিস্ট আছে যা ২D প্লেনে একটি সিম্পল পলিগনের এন্ডপয়েন্ট রিপ্রেজেন্ট করে। আমাদের এই পলিগনের ক্ষেত্রফল বের করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট points = [(0, 0), (0,5), (3, 5), (3,0)] হয়, তবে আউটপুট হবে 15।

পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

সমাধানের ধাপসমূহ

  • getInfo() ফাংশন ডিফাইন করুন যা x1, y1, x2, y2 নেবে, রিটার্ন করবে x1*y2 - y1*x2
  • মেইন মেথড থেকে:
    • N := size of points
    • (firstx, firsty) := points[0]
    • (prevx, prevy) := (firstx, firsty)
    • res := 0
    • for i in range 1 to N-1:
      • (nextx, nexty) := points[i]
      • res := res + getInfo(prevx, prevy, nextx, nexty)
      • prevx := nextx, prevy := nexty
    • res := res + getInfo(prevx, prevy, firstx, firsty)
    • |res| / 2.0 রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

def getInfo(x1, y1, x2, y2):
    return x1*y2 - y1*x2

def solve(points):
    N = len(points)
    firstx, firsty = points[0]
    prevx, prevy = firstx, firsty
    res = 0
    for i in range(1, N):
        nextx, nexty = points[i]
        res = res + getInfo(prevx, prevy, nextx, nexty)
        prevx = nextx
        prevy = nexty
    res = res + getInfo(prevx, prevy, firstx, firsty)
    return abs(res)/2.0

points = [(0, 0), (0,5), (3, 5), (3,0)]
print(solve(points))

ইনপুট

[(0, 0), (0,5), (3, 5), (3,0)]

আউটপুট

15.0
  1. জাভা প্রোগ্রাম: বর্গক্ষেত্রের ক্ষেত্রফল বের করার পদ্ধতি

  2. পাইথনে দুটি রেক্ট্যাঙ্গেল দ্বারা আচ্ছাদিত মোট এলিয়া বের করা

  3. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

  4. পাইথনে হিস্টোগ্রামের নিচে সর্বোচ্চ আয়তাকার এলাকা খুঁজে বের করার প্রোগ্রাম