문제
모니터 크기를 말할 때, 화면의 대각선 길이를 인치 단위로 나타내는 경우가 많습니다. 하지만 인치 단위에 익숙하지 않은 경우라든지, 화면 비율에 따른 차이가 감이 안잡히는 때가 종종 있습니다. 모니터 대각선 길이와 가로, 세로 길이의 함수관계에 대해 생각해보고, 이것을 자동으로 환산해주는 파이썬 함수를 만들어보겠습니다.
문제 자세히 보기
인치와 센티미터의 함수관계
위와 같이 인치 단위와 센티미터 단위의 관계는 간단하게 정의되어 있습니다. 즉 텔레비전 화면의 대각선 길이가 인치 단위로 알려진 경우, 그 길이의 센티미터 단위의 길이도 명확하게 정해져 있다고 할 수 있습니다. 이것은 앞에서 알아본 바와 같이 함수 관계라고 할 수 있고, 화면의 인치 단위 대각선 길이를 x, 센티미터 단위 대각선 길이를 f(x)라고 하면 아래와 같은 식으로 나타낼 수 있습니다.
대각선 길이와 가로, 세로 길이의 함수관계
모니터 화면은 평면에 투영해보면 직사각형에 근접해서, 가로, 세로, 대각선이 하나의 직각삼각형을 이루는 것으로 생각할 수 있습니다. 그러면 가로, 세로, 대각선 각각의 길이는 피타고라스의 법칙을 만족합니다.
가로 길이와 세로 길이의 비율이 (예를 들어) 4:3으로 정해져 있다면 위 식은 아래와 같이 다시 쓸 수 있습니다.
16k² + 9k² = (대각선 길이)²
25k² = (대각선 길이)²
5k = (대각선 길이)
그리고 가로 길이, 세로 길이와 k의 관계는 각각 아래와 같이 나타낼 수 있습니다.
(세로 길이) = 3k
결국 대각선 길이는 k와 함수 관계이고, 가로 길이, 세로 길이도 k와 각각 함수 관계입니다. 대각선 길이를 x로 k를 f(x)로, 가로 길이를 g(k), 세로 길이를 h(k)로 나타내면 아래와 같이 쓸 수 있습니다.
g(k) = 4k
h(k) = 3k
위 내용을 정리해보면 대각선 길이에서 가로 길이, 세로 길이를 구하는 방법은 각각 아래와 같습니다.
(대각선 길이: x) -- f(x) --> (k 값) -- g(k) --> (가로 길이)
(대각선 길이: x) -- f(x) --> (k 값) -- h(k) --> (세로 길이)
python 코드 정리
각 단계별 함수
인치 -> 센티미터 변환
def f1(x): y = 2.54 * x return y
대각선 길이 -> k
def f2(x): k = (1/5) * x return k
k -> 가로 길이
def g(k): y = 4 * k return y
k -> 세로 길이
def h(k): y = 3 * k return y
각 함수를 활용한 최종 계산
# 4:3 21인치의 경우 x_in = 21 # x_in: 인치 단위 대각선 길이 x_cm = f1(x_in) # x_cm: 센티미터 단위 대각선 길이 k = f2(x_cm) a = g(k) # a: 센티미터 단위 가로 길이 b = h(k) # b: 센티미터 단위 세로 길이
위 내용을 실제로 python에서 실행해보면 다음과 같은 결과를 볼 수 있다.