프로세싱 튜토리얼 함수

프로세싱 함수

이번 장에서는 함수 기입의 기본적 개념과 구문에 대해 다루며 이 개념들을 통해 매개변수화와 재귀적 형태에 대해 토론해본다.

소개할 구문: void,return

함수는 자립적인 프로그래밍 모듈이다. 지금까지 사용자는 프로세싱에 포합된 size(). line(), stroke(), translate() 등의 함수를 이용해 프로그램을 작성했지만 독자적이고 특별한 함수들을 직접 만들어 프로그램을 조정할 수도 있다. 할수는 기본 요소를 코드 블록으로 압축시켜 코드를 더 간단히 만든다. 함수를 이용해 코드는 읽고 고치기 더 쉬워지며 오류 확률도 낮아 진다.

우리는 함수에 대해 무엇을 알고 있을까[ ] 함수에는 종종 그 행위를 정의하기 위한 매개변수가 있다. 예를 들어 line()

함수에는 말단의 두 위치를 정의하는 4개의 매개변수가 있다. 함수들은 사용된 매개변수 수에 따라 다른 기능을 할 수도 있 다. 예를 들어 Gl() 함수에 대한 매개변수는 회색 값을 정의하지만 2개의 매개변수는 회색 값과 함께 투명도도 정의하고 3개 의 매개변수는 RGB값을 정의한다.

함수는 데이터에 영향을 미치는 메커니즘이 담긴 상자라고 생각하면 된다. 입력 값을 넣으면 이 입력 값을 이용해 출력 값을 생성해내는 코드가 상자 안에 들어 있는 것이다.

함수 안의 복잡한 코드는 이해하기 힘들 수도 있지만 함수를 이용하는 것은 이 함수의 메커니즘을 반드시 완벽히 이해할 필요가 없기 때문이다. 단지 어떻게 이용하는지 이해만 하면 입력 값은 무엇이며 출력 값에 어떤 영향을 미치는지 알 수 있 다. 이 계산 과정을 무시하는 추상기법은 프로그램의 세세한 사항보다 전체적인 디자인에 초점을 맞추는 데 도움을 준다.

추상

소프트웨어 분야에서 추상은 그림이나 작품 등을 지칭하는 용레와 다르게 사용되며 결과에 집중하기 위해 세세한 것을 무시한다는 의미다. 예를 들어 차량의 바퀴나 페달의 인터페이스를 통해 피스톤운동이나 연료의 흐름 등 차량 작동원리에 대한 세세한 사항은 무시된다. 운전자에게 가장 중요한 것은 핸들을 회전시키면 차가 회전하고 가속페달을 밟으면 주행속 도가 빨라지고 브레이크를 밝으면 속도가 느려진다는 사실이다. 운전자는 엔진 작동의 세부사항을 무시해 당면 과제인 운전 자체에 집중할 수 있으며 너무 세세한 것에 흔들리지 않는 것이다.

추상 개념은 인체와 비교해 설명할 수도 있다. 예를 들어 우리는 호흡을 조전할 수도 있지만 대부분 무의식적으로 호흡 한다. 우리가 인체의 전 과정을 조절해야 한다고 가정해보자. 동시에 심장박동을 조절하고 호르몬을 분비하고 뉴런. 을 작 동시켜야 했다면 책을 읽거나 소프트웨어를 짜는 복잡한 작업은 생각조자 못했을 것이다. 우리의 뇌는 인체 유지의 기본적 기능을 추상화해 우리의 정신이 삶의 다른 분야에 집중할 수 있도록 하는 것이다.

이 추상 개념은 특히 소프트웨어를 짜는 데 필수다. 프로세싱에서 line(), clipse(). fil() 함수 등 그리기 함수들의 복잡 성은 추상화되어 프로그래머는 응용 과정보다 결과에 집중할 수 있다. 만약 프로그래머가 선을 그리고 싶다면 아마도 그 선 의 위치. 두께. 색상에 대해 생각하지 복잡한 코드들이 픽셀로 전환되는 광경을 상상하지는 않을 것이라는 뜻이다.

왜 함수인가?

독자적인 함수를 어떻게 만들어 내는지 자세히 설명하기 전에 먼저 합수를 이용하고 싶을 상황에 대한 마이를 갈대를 이다. 다음 예시는 함수를 추가해 프로그램을 더 쉽게 모출식으로 만들 수 있다. 이것은 코드의 가독성을 향상시키며 수입의 확장을 쉽게 해준다.

void setup () {

size (100, 100);

noStroke();}

void draw() {

background (204);

fill (255);

ellipse(50, 50, 60, 60);

// White circle

fill(0);

ellipse(50+10, 50, 30, 30); // Black circle fill (255);

ellipse(50+16, 45, 6, 6);

// Small, white circle

}

이전 프로그램은 도형을 한 번 그리기 위한 쉬운 방법을 보여주지만 다른 도형이 추가되면 2배의 코드가 더해지고 도형 수가 늘수록 코드 양도 지속적으로 추가된다. dav() 블록 안에 도형이 추가되면 코드 총량도 2배가 된다. 하나의 도형을 그 리는 데 코드 6줄이 필요하므로 도형 2개를 그리면 12줄이 된다. 총 6개를 그리기 위해서는 36줄의 코드가 필요하다. 만약 우리가 30개를 그리고 싶었다면 dravr() 안의 모든 코드는 180줄이 될 것이다.

void setup() {

size(100, 100);

noStroke;}

void draw() {

background(204);

// Right shape

fill (255):

ellipse(65, 44, 60, 60);

fill(0);

ellipse(75, 44, 30, 30);

fill (255);

ellipse(81, 39, 6, 6);

Left shape

fill(255);

ellipse(20, 50, 60, 60);

fill(0);

ellipse(30, 50, 30, 30);

fill(255);

ellipse (36, 45, 6, 6);

}

도형이 같은 모양이므로 이 도형을 그리기 위한 함수를 만들 수 있다. 다음 예시에서 소개하는 함수는 x 좌표와 y좌표를 설정하는 2개의 입력변수가 있다. 함수 블록 안의 코드는 하나의 모양을 그리기 위한 원들을 생성해낸다.

함수는 총 8줄의 코드로 이루어져 있지만 한 번만 작성해 놓으면 된다. 함수 안의 코드는 dram()에 설정해놓은 만큼 작 동한다. 이 전략을 쓰면 총 38줄의 코드로 30개의 도형을 그릴 수 있다.

void setup () {

size (100, 100); noStroke ();

}

void draw() {

background (204);

eye (65, 44); eye (20, 50);

}

void eye(int x, int y) {

fill(255);

ellipse(x, y, 60, 60);

fill(0);

ellipse(×+10, y, 30, 30);

fill(255);

ellipse(x+16, y-5, 6, 6);

}

이 프로그램의 플로우를 보면 합수가 전체 프로그램에 영향을 미치는 기제를 확인할 수 있을 것이다. dram() 블록 안에 함수가 사용될 때마다 함수 블록 안의 코드 6줄이 실행되는 것이다. 프로그램의 일반적인 플로우는 함수 때문에 변화하고 함 수 안의 코드가 실행되며 실행이 끝난 후, draw() 블록 안의 다음 코드를 읽는 것이다.

Leave a Comment