06. 여섯 번째 수업: 대칭의 예술 (이등변삼각형과 정삼각형)

삼각형 무리 중에서 미학적으로 가장 완벽한 대칭(Symmetry) 구조를 가진 도형들이 있습니다. 좌우를 데칼코마니 물감처럼 접어버리면 칼같이 들어맞는 균형의 수호자, 이등변삼각형과 모든 면이 똑같이 평등한 정삼각형 군단입니다. 고대 그리스의 신전 건축가들은 이 절대적인 좌우 대칭성을 ‘신이 만든 비율’이라 칭송했습니다.


학습 목표

  • 텐트의 두 기둥(변의 길이)이 똑같을 때 밑바닥 양쪽의 각도 무조건 똑같아지는 이등변(Isosceles) 삼각형의 필연적인 물리학을 봅니다.
  • 세 뼈대가 모두 똑같아서 3개의 각도 무조건 $60^\circ$로 통일되어버리는 절대평등주의 정삼각형(Equilateral)의 강박적 특징을 관찰합니다.
  • 파이썬의 연산자 묶음비교(a == b == c) 기능을 사용해 무수히 던져진 폴리곤 파편 중 대칭 예술품들을 식별해 내는 로직을 작성합니다.

1. 이등변삼각형 (Isosceles): 좌우 대칭의 꼭지각

이등변삼각형의 꼭지각에서 내린 수선이 밑변을 수직이등분하며 데칼코마니처럼 좌우 완벽한 대칭을 이루는 모습의 SVG

‘다리가 두 개 같다’는 뜻의 이등변(Iso + sceles) 삼각형입니다. 여러분이 캠핑 텐트를 친다고 쳐봅시다. 텐트의 중앙 기둥(꼭지각의 수직 이등분선)을 세우고 양옆 텐트 천(두 변)의 길이를 완전히 똑같은 천으로 덮었습니다. 덮는 순간 거친 땅바닥 양 끝에 팩을 박는 각도(두 밑각, Base angles)는 우주가 붕괴해도 완벽하게 일치하게 됩니다!

  • 수직 이등분의 마법: 텐트 천막 맨 꼭대기(꼭지각)에서 바닥으로 돌덩이를 묶어 수직으로 쾅! 떨어뜨리면(수선), 바닥을 받치고 있던 밑변의 길이는 정확히 반으로 뽀개지며 갈라집니다(수직 이등분). 이 절대적이고 소름 돋는 대칭성 덕분에 이등변삼각형은 건축 역학의 하중 분산으로 많이 쓰입니다.

2. 정삼각형 (Equilateral): 기하학의 신(God)의 파편

우주 공간에서 네온 빛을 내는 완벽한 대칭과 평등의 정삼각형 프랙탈 조각들이 떠다니는 사이버펑크 2D 웹툰 일러스트

이등변삼각형이 변이 2개가 같아 밑각 2개가 같았죠? 그렇다면 변 3개가 아예 똑같은 폭군이 나타난다면? 정삼각형은 “내 모든 변의 길이가 똑같다, 그러므로 내 안쪽 각들은 $180^\circ$를 나누어 다 같이 $60^\circ$ 씩 권력을 똑같이 3등분한다!”라고 주장하는 공산당 구조입니다.

가장 단순하고 파괴가 불가능한 아름다운 대칭 도형이기 때문에 거대한 반발 지력을 견디는 거미줄이나 벌집 허니콤 구조를 짤 때, 이 형상들은 내부에 끝없는 정삼각형 테셀레이션 패턴을 그려냅니다.

3. Python 감식반: 대칭 폴리곤 식별 (== 연산자 체인)

데이터베이스 렌더링 서버에서 수백만 개의 깨진 다각형 파편(Polygon 데이터)이 무작위 크기로 들어오고 있습니다. 우리는 이 파편들의 모서리 3개 길이 정보만 받고, 이것이 신이 내린 대칭 구조인지 파이썬(Python)의 고속 다중 비교 문법을 통해 식별(Detection)해 낼 수 있습니다.

# 파이썬 3D 그래픽 대칭성(Symmetry) 식별 스캐너

def analyze_triangle_symmetry(side1, side2, side3):
    """
    들어온 3개의 선분 길이를 확인하고 이등변, 정삼각형, 
    아니면 그저 찌그러진 잡종(부등변)인지 스캐닝합니다.
    """
    
    # 1. 최고 존엄 정삼각형 검사: 파이썬 특유의 직관적 문법 (다중 등호 체인)!
    # "C나 자바는 (a == b) && (b == c) 라고 짜증나게 쳐야 하지만,
    # 파이썬은 side1 == side2 == side3 으로 직빵으로 물고 늘어집니다!"
    if side1 == side2 == side3:
        return "👑 완벽한 정삼각형 (Equilateral): 60도의 신"
        
    # 2. 이번엔 좌우대칭 이등변 검사: 셋 중 두 개만 일치해도 통과!
    elif (side1 == side2) or (side2 == side3) or (side1 == side3):
        return "⛺ 좌우대칭 텐트 이등변삼각형 (Isosceles)"
        
    # 3. 아무것도 겹치지 않는 잡종 버그 다각형.
    else:
        return "🗑 일반 찌그러진 부등변삼각형 (Scalene)"


# 위성의 캐드 스캐닝 타겟 데이터!
target_alpha = (5.5, 5.5, 5.5)   # 모든 길이 동일!
target_beta  = (12.0, 7.0, 12.0) # 좌우 길이(12) 동일! 
target_gamma = (4.0, 5.0, 9.0)   # 엉망진창!

print(f"알파 폴리곤 스캐닝: {analyze_triangle_symmetry(*target_alpha)}")
print(f"베타 폴리곤 스캐닝: {analyze_triangle_symmetry(*target_beta)}")
print(f"감마 폴리곤 스캐닝: {analyze_triangle_symmetry(*target_gamma)}")

우리의 감식 코드는 조건문(if / elif / else) 분기 제어를 이용해 렌더링 시스템 안에 숨어버린 완벽한 대칭성(Symmetry)을 추출해 냅니다. 데이터 분류나 머신러닝 영상 처리에서 이러한 기하학적 형상 비율 판독은 도로의 표지판 등을 식별하는 고속 필터링 시스템의 핵심 논리 조건으로 쓰입니다.

학습 정리

  1. 이등변삼각형 (Isosceles): 두 변의 길이가 같고 그 아래 두 밑각이 똑같이 복제되는 대칭의 텐트. 꼭대기에서 내린 수선은 바닥을 수직 이등분해 버리는 단두대의 역할도 한다.
  2. 정삼각형 (Equilateral): 모든 변과 모든 각(모두 $60^\circ$)이 똑같은 기하학적 평등의 끝판왕.
  3. 데이터 코딩 시 값을 매칭할 때, 다른 언어들과 달리 Python은 연쇄형 비교 연산자 구조(a == b == c)를 통해 인간이 수학 공식(세 항의 일치 여부)을 뇌로 읽는 그대로 조건문 필터 구문으로 타이핑하고 렌더링시킬 수 있다.
서브목차