Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาพื้นที่รวมของสี่เหลี่ยมสองรูปใน Python


สมมติว่าเราต้องการหาพื้นที่ทั้งหมดที่ครอบคลุมด้วยสี่เหลี่ยมเส้นตรงสองรูปในระนาบ 2D ในที่นี้สี่เหลี่ยมแต่ละอันถูกกำหนดโดยมุมล่างซ้ายและมุมบนขวาตามที่แสดงในภาพ

โปรแกรมหาพื้นที่รวมของสี่เหลี่ยมสองรูปใน Python

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • width_1 :=|C-A|, height_1 :=|D-B|
  • width_2 :=|G-E|, height_2 :=|H-F|
  • พื้นที่ :=width_1*height_1 + width_2*height_2
  • ถ้า (GC) หรือ (F>D) หรือ (H
  • จุดส่งกลับ
  • มิฉะนั้น
    • p :=สูงสุดของ A, E
    • q :=สูงสุด B, F
    • r :=ขั้นต่ำของ C, G
    • s :=ขั้นต่ำของ D, H
    • width_3 :=|r-p|
    • height_3 :=|s-q|
    • พื้นที่ส่งกลับ - (width_3*height_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