मान लीजिए कि हम एक 2D समतल में दो आयताकार आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना चाहते हैं। यहाँ प्रत्येक आयत को उसके निचले बाएँ कोने और ऊपरी दाएँ कोने से परिभाषित किया गया है जैसा कि चित्र में दिखाया गया है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- चौड़ाई_1 :=|सी-ए|, ऊंचाई_1 :=|डी-बी|
- चौड़ाई_2 :=|G-E|, ऊंचाई_2 :=|H-F|
- क्षेत्र :=चौड़ाई_1*ऊंचाई_1 + चौड़ाई_2*ऊंचाई_2
- अगर (जी<ए) या (ई>सी) या (एफ>डी) या (एच<बी), तो
- वापसी क्षेत्र
- अन्यथा,
- p :=अधिकतम A, E
- q :=अधिकतम B, F
- r :=न्यूनतम C, G
- s :=न्यूनतम D, H
- चौड़ाई_3 :=|r-p|
- ऊंचाई_3 :=|s-q|
- वापसी क्षेत्र - (चौड़ाई_3*ऊंचाई_3)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(A, B, C, D, E, F, G, H): width_1 = abs(C-A) height_1 = abs(D-B) width_2 = abs(G-E) height_2 = abs(H-F) area = width_1*height_1 + width_2*height_2 if (G<A) or (E>C) or (F>D) or (H<B): return area else: p = max(A,E) q = max(B,F) r = min(C,G) s = min(D,H) width_3 = abs(r-p) height_3 = abs(s-q) return area - (width_3*height_3) A = -3 B = 0 C = 3 D = 4 E = 0 F = -1 G = 9 H = 2 print(solve(A, B, C, D, E, F, G, H))
इनपुट
-3, 0, 3, 4, 0, -1, 9, 2
आउटपुट
45