발표 챕터
127p Math 4: Random
133p Transform 1: Translate, Matrices
137p Transform 2 : Rotate, Scale
173p Structure 2: Continuous
181p Structure 3: Functions
- random(), noise()함수를 이용하여, 무작위한 숫자들을 생성하고, 그것을 그래픽에 응용하는 방법을 다룬다.
- processing의 기본 좌표계(화면의 좌측 상단이 0,0)를 이동하고 회전하는 방법들을 알아본다.
- processing의 특징인 draw() 함수의 개념을 알아본다.
- 함수(function)의 특징과 생성 방법을 알아본다.
Math 4: Random
-주요 syntax
random(), randomSeed(), noise(), noiseSeed()
- random()함수는 두 가지 방법으로 사용이 가능하며, 결과 값으로 실수(float)를 생성한다.
random(high) -> 0과 high값 사이의 random한 숫자를 생성(high값은 포함하지 않음)
random(low, high) -> low와 high값 사이의 random한 숫자를 생성(high값은 포함하지 않음)
- randomSeed()함수를 사용하면 randomSeed에 사용한 값이 같은 경우 동일한 random 숫자를 얻을 수 있다.
*random()함수는 기본적으로 매번 실행할 때마다 다른 숫자를 생성한다.
- noise()함수는 파라미터 값을 입력하고 그 값을 증가시켜주는 값에 따라 생성되는 값의 패턴이 변한다.
증가되는 값이 작을 수록 이전에 생성된 값과의 차이가 적은 특징이 있다.
- noiseSeed()함수는 randomSeed()함수와 동일한 역할을 한다.
- 중요 pages
127-128p : random()함수 사용법
129p : randomSeed()함수 설명
130-131p : noise(), noiseSeed() 함수 설명, noise()를 이용한 2d texture(안개이미지)생성하기
Transform 1: Translate, Matrices
-주요 syntax
translate(), pushMatrix(), popMatrix()
- translate()함수를 사용하면 실행 화면 상의 원점(좌측 상단)을 원하는 위치에 옮길 수 있다.
- translate()함수는 연속하여 사용할 경우 누적되어 적용된다.
- pushMatrix()와 popMatrix()를 사용하면 코드 상에서 translate()함수가 적용되는 범위를 설정할 수 있다.
- 중요 pages
133p : translate()함수 사용법
134p : pushMatrix(), popMatrix()함수 설명
135p : pushMatrix()와 popMatrix()의 개념을 이해할 수 있는 예제
Transform 2 : Rotate, Scale
-주요 syntax
rotate(), scale()
- rotate()함수를 사용하면, (0,0)을 기준으로 화면을 회전 시킬 수 있다.
*rotate()함수는 parameter값으로 degree가 아닌 radian값을 사용한다.
- scale()함수를 사용하면 x,y축 좌표계의 크기를 확대시킬 수 있다.
- rotate(), scale()함수는 화면상에 표시된 그래픽을 회전시키거나 확대시키는 것이 아니라
화면의 좌표계 자체를 회전시키고, 확대시킨다는 점에 유의한다.
- 중요 pages
137p : rotate()함수 사용법 및 개념 설명
138p : scate()함수 설명
139p : 앞서 배웠던 transform()함수와 조합하여 좌표계를 다양하게 변형하는 방법 설명
Structure 2: Continuous
-주요 syntax
draw(), frameRate(), frameCount, setup(), noLoop()
- draw()함수는 processing 프로그램의 가장 큰 특징인 함수로 매 frame마다 반복 실행이 된다.
- frame속도는 변경이 없을시, 기본적으로 60fps으로 설정되어 있고, frameRate()함수로 변경이 가능하다.
*여기서 설정되는 frame속도는 최대값을 설정해 주는 것으로 컴퓨터의 사양과 코딩에 따라 속도가 느려질 수 있다.
- draw()함수가 사용되더라도, noLoop()함수를 사용하면 반복 실행을 멈추 수 있다.
- 일반적인 processing 코딩의 기본 구조는 아래와 같다.
int y = 0; // 전역 변수 선언
void setup() { // setup() 함수 안에 기본적인 설정값 설정
size(300, 300); // setup() 함수는 프로그램 실행시 맨처음 한 번만 실행된다.
}
void draw() { // draw() 함수 안에 실행될 내용을 넣으며, draw()함수는 매 frame마다 실행된다.
line(0, y, 300, y);
y = y + 4;
}
- 변수가 선언되면 그 변수의 적용 범위는 변수가 선언된 괄호를 경계로 한다.
예외로 setup()함수 위쪽에 선언된 변수는 프로그램 전체에서 사용될 수 있다.
- 중요 pages
173p : draw()함수의 특징 설명
175p : draw()함수의 특징을 사용한 예제들
176p : processing 코딩의 기본적인 형태
178-180p : 변수의 적용 범위에 대한 설명과 관련 예제들
Structure 3: Functions
-주요 syntax
void, return
- processing에 기본적으로 내장되어 있는 line(), rect()등 이외에도 사용자가 직접 자신만의 function(함수)를
만들어 쓸 수 있다.
- return될 값이 없는 함수를 만드는 경우아래와 같은 구조를 갖는다.
*눈(eye)모양을 그리는 함수 만들기
void eye(int x, int y) { // return값이 없는 함수는 함수의 이름 앞에 void를 써준다.
fill(255);
ellipse(x, y, 60, 60);
fill(0);
ellipse(x+10, y, 30, 30);
fill(255);
ellipse(x+16, y-5, 6, 6);
}
* 적용 예
void setup() {
size(100, 100);
noStroke();
smooth();
noLoop();
}
void draw() {
eye(65, 44);
eye(20, 50);
}
void eye(int x, int y) { // 함수를 선언하는 위치는 draw()함수 밑이나 위, 둘 중 아무곳이나 가능
fill(255);
ellipse(x, y, 60, 60);
fill(0);
ellipse(x+10, y, 30, 30);
fill(255);
ellipse(x+16, y-5, 6, 6);
}
- 함수의 parameter의 갯수, 종류에 따라 같은 이름의 함수도 다르게 사용될 수 있다.
- return 값이 있는 함수는 함수 선언시 return되는 값의 type을 명시해 주어야 한다.
return 값이 있는 함수의 예는 아래와 같다.
*입력된 두 parameter의 평균값을 구하는 average()함수를 만든 예
void setup() {
size(100, 100);
float f = average(12.0, 6.0); // Assign 9.0 to f
println(f);
}
float average(float num1, float num2) { // 두 parameter의 평균값을 실수값의 형태로 return하기 때문에
float av = (num1 + num2) / 2.0; // 함수의 이름 앞에 float 이라고 써준다.
return av; // return을 할 계산된 결과 값
}
- 중요 pages
181-182p : 함수의 개념에 대한 설명
183p : 간단한 함수를 만들어 보는 예제
188p : parameter를 사용하여, 함수를 좀 더 다양하게 사용할 수 있는 방법
193p : parameter의 종류, 갯수에 따라 같은 이름의 함수도 다르게 사용될 수 있다.
194p : return값이 있는 함수의 예
127p Math 4: Random
133p Transform 1: Translate, Matrices
137p Transform 2 : Rotate, Scale
173p Structure 2: Continuous
181p Structure 3: Functions
- random(), noise()함수를 이용하여, 무작위한 숫자들을 생성하고, 그것을 그래픽에 응용하는 방법을 다룬다.
- processing의 기본 좌표계(화면의 좌측 상단이 0,0)를 이동하고 회전하는 방법들을 알아본다.
- processing의 특징인 draw() 함수의 개념을 알아본다.
- 함수(function)의 특징과 생성 방법을 알아본다.
Math 4: Random
-주요 syntax
random(), randomSeed(), noise(), noiseSeed()
- random()함수는 두 가지 방법으로 사용이 가능하며, 결과 값으로 실수(float)를 생성한다.
random(high) -> 0과 high값 사이의 random한 숫자를 생성(high값은 포함하지 않음)
random(low, high) -> low와 high값 사이의 random한 숫자를 생성(high값은 포함하지 않음)
- randomSeed()함수를 사용하면 randomSeed에 사용한 값이 같은 경우 동일한 random 숫자를 얻을 수 있다.
*random()함수는 기본적으로 매번 실행할 때마다 다른 숫자를 생성한다.
- noise()함수는 파라미터 값을 입력하고 그 값을 증가시켜주는 값에 따라 생성되는 값의 패턴이 변한다.
증가되는 값이 작을 수록 이전에 생성된 값과의 차이가 적은 특징이 있다.
- noiseSeed()함수는 randomSeed()함수와 동일한 역할을 한다.
- 중요 pages
127-128p : random()함수 사용법
129p : randomSeed()함수 설명
130-131p : noise(), noiseSeed() 함수 설명, noise()를 이용한 2d texture(안개이미지)생성하기
Transform 1: Translate, Matrices
-주요 syntax
translate(), pushMatrix(), popMatrix()
- translate()함수를 사용하면 실행 화면 상의 원점(좌측 상단)을 원하는 위치에 옮길 수 있다.
- translate()함수는 연속하여 사용할 경우 누적되어 적용된다.
- pushMatrix()와 popMatrix()를 사용하면 코드 상에서 translate()함수가 적용되는 범위를 설정할 수 있다.
- 중요 pages
133p : translate()함수 사용법
134p : pushMatrix(), popMatrix()함수 설명
135p : pushMatrix()와 popMatrix()의 개념을 이해할 수 있는 예제
Transform 2 : Rotate, Scale
-주요 syntax
rotate(), scale()
- rotate()함수를 사용하면, (0,0)을 기준으로 화면을 회전 시킬 수 있다.
*rotate()함수는 parameter값으로 degree가 아닌 radian값을 사용한다.
- scale()함수를 사용하면 x,y축 좌표계의 크기를 확대시킬 수 있다.
- rotate(), scale()함수는 화면상에 표시된 그래픽을 회전시키거나 확대시키는 것이 아니라
화면의 좌표계 자체를 회전시키고, 확대시킨다는 점에 유의한다.
- 중요 pages
137p : rotate()함수 사용법 및 개념 설명
138p : scate()함수 설명
139p : 앞서 배웠던 transform()함수와 조합하여 좌표계를 다양하게 변형하는 방법 설명
Structure 2: Continuous
-주요 syntax
draw(), frameRate(), frameCount, setup(), noLoop()
- draw()함수는 processing 프로그램의 가장 큰 특징인 함수로 매 frame마다 반복 실행이 된다.
- frame속도는 변경이 없을시, 기본적으로 60fps으로 설정되어 있고, frameRate()함수로 변경이 가능하다.
*여기서 설정되는 frame속도는 최대값을 설정해 주는 것으로 컴퓨터의 사양과 코딩에 따라 속도가 느려질 수 있다.
- draw()함수가 사용되더라도, noLoop()함수를 사용하면 반복 실행을 멈추 수 있다.
- 일반적인 processing 코딩의 기본 구조는 아래와 같다.
int y = 0; // 전역 변수 선언
void setup() { // setup() 함수 안에 기본적인 설정값 설정
size(300, 300); // setup() 함수는 프로그램 실행시 맨처음 한 번만 실행된다.
}
void draw() { // draw() 함수 안에 실행될 내용을 넣으며, draw()함수는 매 frame마다 실행된다.
line(0, y, 300, y);
y = y + 4;
}
- 변수가 선언되면 그 변수의 적용 범위는 변수가 선언된 괄호를 경계로 한다.
예외로 setup()함수 위쪽에 선언된 변수는 프로그램 전체에서 사용될 수 있다.
- 중요 pages
173p : draw()함수의 특징 설명
175p : draw()함수의 특징을 사용한 예제들
176p : processing 코딩의 기본적인 형태
178-180p : 변수의 적용 범위에 대한 설명과 관련 예제들
Structure 3: Functions
-주요 syntax
void, return
- processing에 기본적으로 내장되어 있는 line(), rect()등 이외에도 사용자가 직접 자신만의 function(함수)를
만들어 쓸 수 있다.
- return될 값이 없는 함수를 만드는 경우아래와 같은 구조를 갖는다.
*눈(eye)모양을 그리는 함수 만들기
void eye(int x, int y) { // return값이 없는 함수는 함수의 이름 앞에 void를 써준다.
fill(255);
ellipse(x, y, 60, 60);
fill(0);
ellipse(x+10, y, 30, 30);
fill(255);
ellipse(x+16, y-5, 6, 6);
}
* 적용 예
void setup() {
size(100, 100);
noStroke();
smooth();
noLoop();
}
void draw() {
eye(65, 44);
eye(20, 50);
}
void eye(int x, int y) { // 함수를 선언하는 위치는 draw()함수 밑이나 위, 둘 중 아무곳이나 가능
fill(255);
ellipse(x, y, 60, 60);
fill(0);
ellipse(x+10, y, 30, 30);
fill(255);
ellipse(x+16, y-5, 6, 6);
}
- 함수의 parameter의 갯수, 종류에 따라 같은 이름의 함수도 다르게 사용될 수 있다.
- return 값이 있는 함수는 함수 선언시 return되는 값의 type을 명시해 주어야 한다.
return 값이 있는 함수의 예는 아래와 같다.
*입력된 두 parameter의 평균값을 구하는 average()함수를 만든 예
void setup() {
size(100, 100);
float f = average(12.0, 6.0); // Assign 9.0 to f
println(f);
}
float average(float num1, float num2) { // 두 parameter의 평균값을 실수값의 형태로 return하기 때문에
float av = (num1 + num2) / 2.0; // 함수의 이름 앞에 float 이라고 써준다.
return av; // return을 할 계산된 결과 값
}
- 중요 pages
181-182p : 함수의 개념에 대한 설명
183p : 간단한 함수를 만들어 보는 예제
188p : parameter를 사용하여, 함수를 좀 더 다양하게 사용할 수 있는 방법
193p : parameter의 종류, 갯수에 따라 같은 이름의 함수도 다르게 사용될 수 있다.
194p : return값이 있는 함수의 예