프로세싱배우기 : 기초예제
함수에 대한 이해 1
오늘 포스팅에서는
'함수'에 대해서 꼼꼼하게 살펴보도록하겠습니다.^^
함수에 대한 내용은
프로세싱, 날개를 달다1의 내용을 참조하였습니다.
함수를 정의(선언)하기
3부분으로 나누어 볼 수 있습니다.
반환값 / 함수이름 / 인자(매개변수)
형태는 아래와 같습니다.
반환값 함수이름(인자) {
//함수코드 본체
}
그렇다면 백문이불여일견!
실제 예시를 살펴보겠습니다~
예제 1
void draw() {
drawCircle();
}
void drawCirlce() {
fill(0);
ellipse(50, 50, 20, 20);
}
관습적으로, 함수는 draw()아래에 위치합니다.
이번에는 인자(매개변수)를 포함한 예시입니다.
여기서 drawCircle()은 예제를 위하여 임의로 정한 이름입니다.
예제 2
void draw(int diameter) {
drawCircle(32);
}
void drawCirlce() {
fill(0);
ellipse(50, 50, diameter, diameter);
}
이제 draw()에서
drawCircle()안에 32만 넣어주어도
직경이 32인 ellipse가 그려지게 되게됩니다.
인자를 갖고있는 함수의 경우가
그렇지 않은 함수보다 더 유연하게 사용가능합니다
(재 사용의 유연성)
<매개변수 전달 핵심 포인트>
- 인자(매개변수)는 함수내에서 지역변수역할을 합니다.
- 함수에서 정의한 것과 같은 수의 매개변수를 전달해야합니다
- 함수에서 정의한 것과 동일한 형식의 인자여야 합니다. (int는 int로!)
함수로 전달가능한 매개변수
변수(20, 5, 4.3등)
문자값(x, y등)
계산식(x/2, random(0, 20)등)
1번 예제의 전체 코드 살펴보기
int x = 0;
int y = 0;
int speed = 1;
void setup() {
size(200, 200);
smooth();
}
void draw() {
move();
bounce();
display();
}
void move() {
x = x + speed;
}
void bounce() {
if((x > width) || (x < 0)){
speed = speed * -1;
}
}
void display() {
background(255);
rectMode(CENTER);
noFill();
stroke(0);
rect(x, y, 32, 32);
fill(255);
rect(x-4, y-4, 4, 4);
rect(x+4, y+4, 4, 4);
line(x-4, y+4, x+4, y+4);
}
- 다니엘 쉬프만, 『프로세싱, 날개를 달다』, 랜덤웍스, 옮김, 비제이퍼블릭, 2009 [본문으로]
'시각화 > 프로세싱' 카테고리의 다른 글
| ▶ Processing :: 프로세싱 기초예제 - 픽셀 (0) | 2014.05.03 |
|---|---|
| ▶ Processing :: 프로세싱 배우기 :: 기초예제 5 - 배열예제 : 수평라인모션 (0) | 2014.04.28 |
| ▶ Processing :: 프로세싱 배우기 :: 기초예제 3 - ellipse()와 rect() (0) | 2014.04.16 |
| ▶ Processing :: 프로세싱 사례 :: Shaping Cyclone (1) | 2014.04.15 |
| ▶ Processing.js :: Processing.js 시작하기 :: 기초 튜토리얼 (0) | 2014.04.14 |