게임 수학 - 소수 제곱
소수 제곱 (Squaring Decimal)
먼저 예시 그림부터 만들어보자
+-+-+
|3|3|
+-+-+
|3|3|
+-+-+
- 욕실에 타일을 붙어 넣는다고 가정한다.
- 타일은 완전한 타일, 반개의 타일, 반의 반 개의 타일로 세 가지로 구성하였다.
- 각각 숫자로 3, 2, 1 로 표현하겠다.
- 먼저 완전한 4개의 타일이 붙이도록 한다.
- 다음으로 크기를 확장해보도록 한다.
+-+-+-+
|2|2|1|
+-+-+-+
|3|3|2|
+-+-+-+
|3|3|2|
+-+-+-+
- 완전한 타일 4개 기준으로 위와 우측 반의 타일 2개씩 붙이고 대각선에 반의 반 한 개 추가해 총 4 + 4 + 1 개의 타일을 붙였다.
- 대각선은 반의 반 타일을 완전한 타일의 1/4 쪼갠 것이다.
- 수식으로는 2.5^2+(1/4) = 4+4*(1/2)+(1/4) 가 된다.
- 2.5 는 한 변의 완전한 타일(1)의 갯수와 반의 타일(0.5) 합한 것이다.
- 욕실에 붙인 완전한 타일 + 반의 타일 + 반의 반 타일을 수식으로 표현한거다.
- 이어서 4 + 2 + 1/4 = 6(1/4) = 6.25 계산 되었다.
- 타일은 총 6.25 개만큼 소모한 것이다.
- 정수가 아닌 소수로 제곱으로 계산이 된다.
다음으로 3x3 타일에서 확장하는 경우 어떻게 계산되는지 살펴보자.
+-+-+-+
|3|3|3|
+-+-+-+
|3|3|3|
+-+-+-+
|3|3|3|
+-+-+-+
- 3x3 완전한 타일로 메꿔졌다. 한 변의 타일이 3개 붙였고 총 9개가 된다.
+-+-+-+-+
|2|2|2|1|
+-+-+-+-+
|3|3|3|2|
+-+-+-+-+
|3|3|3|2|
+-+-+-+-+
|3|3|3|2|
+-+-+-+-+
- 한 변의 완전한 타일 3개와 (1/2) 타일 1개가 붙여 있다.
- 대각선에는 (1/4) 타일을 한 개붙였다.
- 3.5^2+(1/4) 으로 계산한다.
- 3.5^2+(1/4) =
9 + 6*(2/1) + (1/4) =
9 + 3 + (1/4) =
12.25 만큼의 타일이 소모하였다.
- 3.5^2+(1/4) =
게임에서는 면적, 색조의 양, 면적 비례 채우는 픽셀 등 많은 사례에서 자주 응용되는 수식이다.
코드에서는 다음과 같이 구성된다.
위의 2x2 추가로 타일을 확장한 케이스로 살펴보자.
코드에서는 Math API 를 사용해 pow(2.5, 2) == 6.25
가 된다.
3x3 추가 확장 에서는 pow(3.5, 2) == 12.25
로 표현한다.
컴퓨터에서는 면적을 무조건 정수로 표현하지 않기에 배워야 하는 소수 제곱 수학이다.