Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है।

इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा।

पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक फ़ंक्शन को परिभाषित करें getInfo() । इसमें x1, y1, x2, y2 लगेगा
  • X1*y2 - y1*x2 लौटाएं
  • मुख्य विधि से, निम्न कार्य करें
  • N :=अंकों का आकार
  • (फर्स्टएक्स, फर्स्टी):=पॉइंट्स[0]
  • (prevx, prevy) :=(फर्स्टएक्स, फर्स्टी)
  • res :=0
  • 1 से N-1 की श्रेणी के लिए, करें
    • (nextx, nexty):=​​अंक[i]
    • res :=res + getInfo(prevx, prevy, nextx, nexty)
    • prevx :=nextx
    • पिछला :=अगला
  • 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. पायथन में दो आयतों द्वारा कवर किए गए कुल क्षेत्रफल को खोजने का कार्यक्रम

    मान लीजिए कि हम एक 2D समतल में दो आयताकार आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना चाहते हैं। यहाँ प्रत्येक आयत को उसके निचले बाएँ कोने और ऊपरी दाएँ कोने से परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - चौड़ाई_1 :=|सी-ए|, ऊंचाई_

  1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं

  1. पायथन में हिस्टोग्राम के तहत सबसे बड़ा आयत क्षेत्र खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास हिस्टोग्राम में बार की ऊंचाई का प्रतिनिधित्व करने वाली संख्याओं की एक सूची है। हमें सबसे बड़े आयत का क्षेत्रफल ज्ञात करना है जो कि सलाखों के नीचे बन सकता है। इसलिए, यदि इनपुट अंकों की तरह है =[3, 2, 5, 7] तो आउटपुट 10 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंग