오늘은~^^* 자신과 유사하지만 자신과 살짝 다른 자신을 호출하는 recursion 재귀함수를 만들어 보겠습니다~^^*
무한반복 함수인 draw()를 반복하지 않고, recursion 재귀 함수의 반복기능만을 사용하여 자신과 유사하지만 자신과 살짝 다른 자신을 호출하는 것의 효과만에 집중하여 살펴보도록 하겠습니다~^^*
임의적인 값의 지름을 가진 원을 그리는 recursion 재귀 함수를 사용해 보겠습니다~^^*
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
drawCircle(200, 200, 300);
//원을 그리는 함수를 호출하여 원을 그려 보겠습니다~^^*
//함수 drawCircle을 호출하여, xy좌표(200, 200)을 중심으로 하고, xy축 지름이 300 pixel인 원을 그려 달라고 해보겠습니다.
noLoop();
//재귀함수의 기능에만 집중하여 관찰하기 위해 함수 draw()의 무한반복 기능을 사용하지 않겠습니다~
}
function drawCircle(x, y, d) {
noFill();
stroke(255)
ellipse(x, y, d);
if (d > 2) {
let newD = d * random(0.2, 0.85);
drawCircle(x + newD * 0.5, y, newD );
drawCircle(x - newD * 0.5, y, newD );
}
//x좌표 오른쪽과 왼쪽에 동그라미를 그려보겠습니다~
//원이 오른쪽으로 왼쪽으로 계속 생기고, 전체적인 모양은 프로그램을 실행할 때마다 비슷하면서도 달라지겠네요~^^*
}
프로그램의 실행과 종료를 반복해 보면서, 비슷한 구성을 가지고 있지만 전체적 그림은 매번 달라지는 프랙탈을 관찰해 볼까요?
근데요~^^* 이 프로그램의 함수 draw()의 무한 반복성을 그대로 사용하니, 어머! 동영상 효과가!!!!
function setup() {
createCanvas(400, 400);
}
function draw() {
background(0);
drawCircle(200, 200, 300);
//원을 그리는 함수를 호출하여 원을 그려 보겠습니다~^^*
//함수 drawCircle을 호출하여, xy좌표(200, 200)을 중심으로 하고, xy축 지름이 300 pixel인 원을 그려 달라고 해보겠습니다.
}
function drawCircle(x, y, d) {
noFill();
stroke(255)
ellipse(x, y, d);
if (d > 2) {
let newD = d * random(0.2, 0.85);
drawCircle(x + newD * 0.5, y, newD );
drawCircle(x - newD * 0.5, y, newD );
}
//x좌표 오른쪽과 왼쪽에 동그라미를 그려보겠습니다~
//원이 오른쪽으로 왼쪽으로 계속 생기고, 전체적인 모양은 매번 달라지면서 무한 반복되어 마치 동영상 같은 풍경이 펼쳐질 것 같아요~~
}
수평선 위에 펼쳐지는 멋진 그래픽 동영상!!! 어머!!!
어제도 우리가 무한 반복함수인 draw()의 무한반복성을 그대로 사용했는데, 정지화면 같은 느낌이 들었었지요? recursion 재귀함수가 동일한 그림을 계속 생산하니까 이것을 무한 반복해도 화면 상에서는 정지된 것처럼 보였던 것 같아요.
오늘은 살짝씩 달라지는 recursion 재귀 함수를 사용해서 그림을 그렸더니, 함수 draw()의 무한 반복성이 동영상 효과를 입혀주는 것 같아요~~^^*
하루하루를 무한반복해서 살아가지만, 하루하루 살짝 다른 일상을 살아가서 우리도 자신이 살아 움직이고 있다는 느낌을 가지게 되는 것처럼~~^^* 전체 구조는 비슷하지만 세부 사항은 살짝 다른 프랙탈이 갖는 자연스러움은 그 안에 역동성을 품고 있는 것 같아요!!!
오늘 우리의 일상 속 뭔가 다른 조그만 변화를 가미해서 안정적이면서도 역동적인 하루를 보내 볼까요~~^^*
음…그래서 저는 오늘 동일한 지하철을 타되, 한 정거장 걸어가서 타 볼까 합니다~ 갑자기 추워진 날씨 속 가로수의 변화도 만끽하면서요~~^^*
자기 자신을 호출하고 자신을 호출한 자신에게 값을 return하는 recursion 재귀 함수와 이제 좀 많이 친해지셨나요~~^^*
찬 바람이 불며~은~~ 가로수의 입들이 떨어지고 가로수의 가지의 모양들이 선명하게 드러나게 될 것 같아요~~^^*
그래서요~~^^* 우리 내일은 프랙탈로 나무를 그려 볼까요~~^^*
가을에서 겨울로 성큼! 계절은 바뀌어도 프랙탈로 봄 나무를 심어 볼 수도 있을 것 같아요!
프랙탈 나뭇가지에 푸른 잎을 달고 예쁜 꽃도 달아주면 봄 나무가 될 수도 있을 거예요~~^^*
네~!! 우리 쑥쑥 자라나는 프랙탈 나무를 심어 봅시다~~!!!
오늘도 멋진 아침! 멋진 하루! 보내시고요~~^^*
우리 내일 다시 또 만나요~~^^*
네~~^^* 꿈은 이루어 집니다~~^^*
댓글 남기기