자기 닮음(self-similarity)



시어핀스키 삼각형(The Sierpinski triangle)

사용자 삽입 이미지

위 그림은 시어핀스키 삼각형 또는 시어핀스키 캐스킷(gasket)이라 불리는 프렉탈을 나타낸 그림이다. 1917년경 이것을 제시한 폴란드의 수학자 바츨라프 시어핀스키의 이름을 딴 것이다. 시어핀스키 삼각형은 불규칙적이라기보다는 오히려 규칙적인 알고리즘을 가지고 있다.

1. 색칠되어져 있는 임의의 정삼각형에서 시작하자.
2. 주어진 삼각형의 변의 중점을 꼭지점으로 하는 삼각형을 그려 합동인 4개의 작은 정삼각형을 만든다.
3. 가운데 있는 작은 정삼각형을 제거하여 3개의 정삼각형만 남긴다. 이 때, 작은 정삼각형의 한 변의 길이는 처음 삼각형의 1/2이고 넓이는 1/4이다.
4. 남아있는 3개의 색칠되어진 정삼각형들에서 위의 과정을 반복하여 시행한다.
5. 이런 과정을 무한히 되풀이하면 평면상에 점들의 집합이 나타나는 데 이것이 시에르핀스키 삼각형이다.

각 단계별로 생기는 삼각형의 수를 살펴보면 0단계에서 1개, 1단계에서 3개, 2단계에서 9개가 남는다. 다음 3단계에서 27개의 작은 삼각형이 생기고, 4단계에서 81개가 생긴다. 이런 과정이 반복되면 n단계에서는 3^n개의 작은 삼각형들이 남는 것을 알 수 있다. 또 n단계 후에 생기는 삼각형의 한 변의 길이는 처음에 주어진 변의 길이의 정확히 1/2n이다.

(출처: http://user.chollian.net/%7Ebadang25/sierpinski/sier_triangle.htm)

이러한 방법으로 반복과정을 계속하면 삼각형체(Sieve)와 같은 작은 구멍 투성이 그림이 나타난다. 반복 과정의 단계 수가증가함에 따라 처음 삼각형에 남는 넓이는 점차 0에 접근하는 것은 학습활동에서 볼 수 있다. 반복 과정을 무한히 되풀이하여 마지막으로 만들어진 결과를 시어핀스키 삼각형이라 한다. 1917년 경에 이 도형을 만든 폴란드의 수학자 와클로 시어핀스키(Waclaw Sierpinsky)의 이름을 딴 것이다.

시어핀스키 삼각형의 특징은 엄밀한 자기 닮음이다. 완성된 시어핀스키 삼각형은, 위에 한 개, 아래에 두 개인, 세 개의 작은 삼각형 부분으로 분해할 수 있다. 각 부분은 원래 전체 모습과 똑같은 복제이며, 각 부분을 다시 세 개의 더 작은 삼각형으로 분해할 수 있고, 이 때의 더 작은 삼각형도 원래 모습과 자기 닮음 도형이라 한다.

자기 닮음의 성질을 알아보기 위해, 무한 단계 도형에서 유한 단계의 근사치들을 다룰 필요가 있다. 상자 자기 닮음(box self-similarity) 의 방법을 사용하여, 유한 단계의 도형을 다양한 크기의 격자로 측정한다. 기본적인 아이디어는 자기 닮음인 도형이라면, 그 생성과정 유한 단계의 도형에 대해서, 더 세밀한 격자를 사용해도 측정한 상자 수가 차이가 나지 않는 단계가 있다는 점이다.

다른 관점에서 살펴 본다면 투명한 정사각형 격자나 칸(pixel)을 주어진 단계의 그림 위에 올려 놓았다고 상상해보자. 그림의 일부분이라도 포함하는 칸이 있다면 색칠하고, 색칠한 칸의 수를 센다. 적절하게 확대한 그림 위에 격자를 놓고 그림의 일부분이라도 포함하는 칸이 있다면 색칠하고, 색칠한 칸의 수를 센다. 계속해서 다음 단계의 그림을 가지고 같은 과정을 되풀이 한다. 자기 닮음 도형이면, 사용한 격자의 크기에 관계 없이 색칠한 칸수와 나타나는 패턴이 같은 단계가 있어야 한다.



파스칼 삼각형

파스칼 삼각형은 n이 0부터 1씩 끝없이 증가하면서 이항식 (x+y)n 을 전개할 때 나타는 계수들의 삼각형 배열을 말한다. 이러한 수의 삼각형 배열은 수 패턴과 기하 패턴을 연구하는 데 좋은 자료가 될 것이다.

파스칼 삼각형에서 수 배열을 만드는 알고리즘은 바로 그 윗 단계의 두 수를 더하는 것이다. 예를 들어, 그림의 마지막 행에 있는 36은 바로 그 위의 두수 28과 8의 합이다. 하지만 삼각형이 매우 커지고 그 안에 나타나는 수들 또한 매우 커지면 수 배열을 만드는 반복 과정은 번거로운 작업이 될 것이다.

파스칼 삼각형의 수의 크기에 상관 없이, 각 수가 짝수인지 또는 홀수인지를 알면 색칠하기를 도입할 수 있다. 짝수에는 0, 홀수에는 1을 쓰자, 다음 단계의 새로운 항을 만들기 위해서는 짝수와 홀수의 덧셈이 어떻게 되는지를 알면 된다.

짝수 + 짝수 = 짝수 0+0=0 (mod2)
짝수 + 홀수 = 홀수 0+1=1 (mod2)
홀수 + 짝수 = 홀수 1+0=1 (mod2)
홀수 + 홀수 = 짝수 0+0=0 (mod2)

위에서 보는 바와 같이 0과 1의 덧셈은 mod 2의 게산이다. mod2의 덧셈의 결과는 두 수의 합을 2로 나눈 나머지 0,1 이다. 색칠하기 규칙은 쉽게 적용할 수 있다, 칸이 0이면 흰색을, 1이면 검은색을 칠하면 된다. 새로운 행의 각 칸에 규칙을 확장하기 위해서는 바로 위의 두 칸의 색을 보고 네 가지 중에서 알맞은 규칙을 적용하면 된다. 일반화하면 다음과 같다.

바로 위쪽의 두 칸이 같은 색이면 아래 같은 흰색을 칠한다. 바로 위쪽의 두 칸이 다른 색이면 아래 같은 검은 색을 칠한다. 색칠하기 규칙을 계속하면 놀라운 결과가 나타난다. 뜻밖에도 시어핀스키와 같은 유형의 검은 점들의 배열이 삼각형에 나타난다. 파스칼 삼각형에 새로운 행을 추가할수록, 생성하는 도형에서 시어핀스키 규칙을 볼 수 있다.

몇 단계 이상의 단계에서는 한 줄 한 줄씩 파스칼 삼각형의 각 칸을 색칠하는 것은 번거롭다. 그러나 격자형의 거리에 주소를 부여하는 것과 같은 방법으로 주어진 임의의 행의 칸에 해당하는 행을 바로 찾아낼 수 있다. 격자 내의 각 칸은 두 좌표의 순서쌍으로 표현할 수 있다. (왼쪽 좌표, 오른쪽 좌표)

그림에 나타난 축을 사용하면 색칠한 칸은 좌표 주소(2,5)이다. 이제 각 좌표를 이진수로 바꾸어보자. 좌표(2,5)는 이진수 좌표(010,101)이다. 각 칸의 이진수 좌표를 자리를 맞춰 두 줄로 쓴다. 좌표의 각 자리를 비교하여 모두 1인 경우가 한 변이라도 있으면 그 칸에 흰색으로 두고, 그렇지 않으면 검은색을 칠한다. 2진수 좌표 (010, 101)은 어떤 자리에서도 모두 1이 아니므로 검게 칠한다.

0 1 0
1 0 1

위와 같은 방법으로 이 진수 자리를 비교하는 것은 논리곱(and)와 동치이다. 두 조건이 모두 참이어야 결론이 참이다.

T이고 T -> T 1이고 1->1
T이고 F -> F 1이고 0->0
F이고 T -> F 0이고 1->0
F이고 F -> F 0이고 0->0 (공식화 됨)

Reference
수학교사를 위한 프랙탈 기하 -신인선,류희찬 옮김- 경문사

'Computer_Graphics' 카테고리의 다른 글

법선 벡터 구하기  (0) 2007.03.14
시어핀스키 삼각형  (0) 2007.03.14
시에르핀스키 피라미드원리  (0) 2007.03.14
OpenGL 초기화  (0) 2007.03.14
Posted by Real_G