반응형

"준비, 땅!"

그림을 그릴 때 종이 한 장보다 더 좋은 재료가 있다면, 종이 여러 장이겠죠. 이번 노트는 setup함수와 draw함수의 차이점과 사용법에 대해 다룹니다.


△Processing으로 작품을 만들 땐 기본적으로 setup과 draw함수를 사용하게 됩니다. setup은 코드 실행 순간 단 한 번만 동작하는 함수입니다. 반면 draw는 setup 이후 프로그램을 마칠 때까지 반복하여 동작합니다.

△그럼 먼저 setup함수 안에서 원을 그려볼까요?

△원이 화면 중앙에 잘 그려졌습니다.

△하나 더 그리면 어떨까요? 이번엔 좀 작은 원으로요.

△연두색 원 안에 쏙 안겼네요.

△이번엔 동일한 코드를 draw함수 안에 옮겨 써 봅니다.

△별다른 차이점이 안 느껴집니다. 둘이 다르게 동작하는 게 맞나요?

△두 함수가 어떤 차이가 있는 지 정확히 알아보기 위해 이번엔 작은 원을 움직여 보겠습니다. 모든 함수에서 사용할 수 있도록 변수 x, y의 초기값을 상단에 지정해두고 다시 setup에 원을 그립니다. 노트의 시작 부분에서 setup함수는 코드 실행 시 한 번만 동작한다고 언급하였습니다. 그럼 어떤 그림이 나올지 짐작할 수 있겠죠?

△아주 잘 하셨습니다. 원은 처음 실행될 때 지정되는 위치에 단 한 번만 그려지는 것을 확인할 수 있습니다. 그럼 draw는 어떨까요?

△마찬가지로 동일한 코드를 그대로 draw함수에 옮겨 실행해봅니다. draw는 프로그램 종료 시까지 지속적으로 반복 실행됩니다. 그럼 어떤 그림이 나올까요?

△마치 두꺼운 선을 그리는 것 같죠? 함수가 반복 실행되면 계속해서 x, y의 값이 커지기 때문에 작은 원의 위치도 이동한 상태로 계속 그려집니다.

△함수가 시작될 때마다 새로운 종이를 깔아주면 어떨까요? background 한 줄을 draw 시작 부분에 추가했습니다.

△매번 새로운 종이에 큰 원과 작은 원을 그려내는 코드가 만들어졌습니다. 엄밀히 말하면 '새로운 종이'가 아니라 '회칠'이 더 정확한 표현이겠네요.


setup함수에는 프로그램의 시작시 정의되는 속성들을 주로 설정하게 됩니다. 두 함수의 특성은 어려운 개념이 아니니 아주 쉽게 이해하셨을 것이라 생각합니다. 만약 헷갈린다면, 직접 setup과 draw의 특성을 잘 기억하면서 여러 코드를 시험해보시길 바라요.

△마지막으로 random함수를 이용해 안절부절못하는 작은 원을 그려보면서 이번 노트를 마치겠습니다.

random(x, y);
//x와 y사이의 랜덤한 값(실수)을 반환합니다.

△귀엽네요.

[Processing 3.5.3] #3 Setup & Draw 마침.

 

반응형

+ Recent posts