โปรแกรมนี้ตรวจสอบความเท่ากัน (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 จริง ต้องเช็คค่าเท่ากันพอดี (==) ไม่ใช่สัดส่วน