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

โปรแกรมตรวจสอบความเท่ากันของสามเหลี่ยม (Congruency) ใน Python

โปรแกรมนี้ตรวจสอบความเท่ากัน (Congruency) และคล้ายกัน (Similarity) ของสามเหลี่ยม 2 รูป ตามเกณฑ์มาตรฐาน: SSS (Side-Side-Side), SAS (Side-Angle-Side), AAA (Angle-Angle-Angle)

หลักเกณฑ์

  • SSS: ด้านทั้ง 3 คู่สัมพันธ์กัน
  • SAS: ด้าน 2 คู่สัมพันธ์ และมุมระหว่างด้านเท่ากัน
  • AAA: มุมทั้ง 3 เท่ากัน (คล้ายกัน ไม่จำเป็นต้องเท่ากัน)

โค้ดโปรแกรม

def side_side_side(sides_one, sides_two):
    sides_one.sort()
    sides_two.sort()
    if (sides_one[0] / sides_two[0] == sides_one[1] / sides_two[1] == sides_one[2] / sides_two[2]):
        return True
    return False

def side_angle_side(sides_one, sides_two, angles_one, angles_two):
    sides_one.sort()
    sides_two.sort()
    angles_one.sort()
    angles_two.sort()
    
    # ตรวจสอบ 3 กรณีของด้านที่สัมพันธ์
    if sides_one[0] / sides_two[0] == sides_one[1] / sides_two[1] and angles_one[0] == angles_two[0]:
        return True
    if sides_one[1] / sides_two[1] == sides_one[2] / sides_two[2] and angles_one[1] == angles_two[1]:
        return True
    if sides_one[2] / sides_two[2] == sides_one[0] / sides_two[0] and angles_one[2] == angles_two[2]:
        return True
    return False

def angle_angle_angle(angles_one, angles_two):
    angles_one.sort()
    angles_two.sort()
    if angles_one[0] == angles_two[0] or angles_one[1] == angles_two[1] or angles_one[2] == angles_two[2]:
        return True
    return False

if __name__ == '__main__':
    sides_one = [2.0, 3.0, 3.0]
    sides_two = [4.0, 6.0, 6.0]
    angles_one = [80.0, 60.0, 40.0]
    angles_two = [40.0, 60.0, 80.0]

    print("Triangles are similar by:", end=' ')
    if side_side_side(sides_one, sides_two):
        print("SSS", end=' ')
    if side_angle_side(sides_one, sides_two, angles_one, angles_two):
        print("SAS", end=' ')
    if angle_angle_angle(angles_one, angles_two):
        print("AAA", end='')

ผลลัพธ์

Triangles are similar by: SSS SAS AAA

หมายเหตุ: โค้ดนี้ตรวจสอบ Similarity (คล้ายกัน) ไม่ใช่ Congruency (เท่ากันทุกอย่าง) เพราะใช้สัดส่วน (Ratio) ไม่ใช่ค่าเท่ากันพอดี สำหรับ Congruency จริง ต้องเช็คค่าเท่ากันพอดี (==) ไม่ใช่สัดส่วน