이 글에서는 아래와 같은 문제를 파이썬으로 해결하는 방법을 알아보겠습니다.
문제 정의
구면 거울의 곡률 반경(Radius of Curvature)이 주어졌을 때, 해당 거울의 초점 거리(Focal Length)를 구하는 프로그램을 작성합니다.
핵심 개념 이해하기
초점 거리는 거울의 곡률 중심에서 주초점까지의 거리를 의미합니다.
곡률 반경은 거울의 꼭짓점(Vertex)에서 곡률 중심(Centre of Curvature)까지의 거리입니다.
구면 거울의 초점 거리를 구하려면 먼저 그 거울의 곡률 반경을 알아야 하며, 수학적으로는 다음과 같은 간단한 관계식이 성립합니다.
공식
- 오목 거울(Concave Mirror): F = R / 2
- 볼록 거울(Convex Mirror): F = -R / 2
즉, 초점 거리는 항상 곡률 반경의 절반이며, 볼록 거울의 경우 초점이 허 쪽(반사면 뒤쪽)에 형성되기 때문에 부호가 음수가 됩니다.
구현 예제
# 오목 구면 거울
def focal_length_concave(R):
return R / 2
# 볼록 구면 거울
def focal_length_convex(R):
return -(R / 2)
# 실행 부분
R = 30
print("오목 구면 거울의 초점 거리 :", focal_length_concave(R), "units")
print("볼록 구면 거울의 초점 거리 :", focal_length_convex(R), "units")실행 결과
오목 구면 거울의 초점 거리 : 15.0 units 볼록 구면 거울의 초점 거리 : -15.0 units
코드 설명
위 코드에서는 곡률 반경 R = 30을 입력값으로 사용했습니다. 오목 거울 함수는 양수인 초점 거리 15.0을 반환하고, 볼록 거울 함수는 음수인 -15.0을 반환하는 것을 확인할 수 있습니다.
출력 결과의 단위는 미터(m), 센티미터(cm), 밀리미터(mm) 등 어떤 단위든 될 수 있으므로, 일반화된 표현을 위해 특정 단위 대신 'units'로 표시했습니다.
또한 두 함수는 각각 독립적으로 정의되어 있어, 필요에 따라 재사용하거나 다른 곡률 반경 값에 적용할 수 있습니다.
마무리
이번 글에서는 구면 거울의 곡률 반경만 알면 간단한 공식 F = R / 2를 통해 초점 거리를 손쉽게 계산할 수 있다는 것을 배웠습니다. 오목 거울과 볼록 거울의 부호 규칙만 주의하면, 파이썬 몇 줄로도 기하광학의 기본 계산을 충분히 처리할 수 있습니다.