Generative Algorithm 009

3_4_함수의 활용(Functions)

 
Grasashopper를 자신만의 디자인에 활용하기 위해서는 그 함수가 미리 정의된 grasshopper 컴퍼넌트들 만을 사용하는 것이 최선은 아니다. 사용자가 자신만의 data 묶음(data set)을 만들거나 기존의 컴퍼넌트의 data를 바꿔가며 활용할 줄 알아야 한다. 이를 위해서는 차수와 거리(distance)등을 바꿀 수 있는 수학함수를 이용하는 것이 좋다. 함수(function) 컴퍼넌트들은 (Logic > script)에서  찾을 수 있다.  이러한 함수 컴퍼넌트를 이용하여 사용자가 스스로 정의한 함수를 만들어 낼 수 있다. (이러한 data는 숫자 뿐만 아니라 Boolean이나 string 또한 가능하다.) (F)를 우클릭 하여 함수를 직접 입력하거나 더블클릭 하여 Expression Editor를 키고 함수를 입력할 수 있다. 이 Expression Editor에는 미리 정의된 함수들이 존재한다.
&nbsp
 

함수의 이용 (Math functions)

위에서 언급된 것 처럼 미리 정의된 컴퍼넌트를 이용하는 것이 항상 최선은 아니다. 하지만 원하는 결과를 얻기 위해서는 먼저 수학적 함수들과 그것의 인풋이 기하체를 만들어 내는데 어떠한 영향을 끼치는 지를 알아야 한다.
 
 
함수의 간단한 예를 살펴보도록 하자. ‘t’는 0과 2pi 사이의 값으로 X=Sin(t) , Y=Cos(t)로 정의된 함수이다. 이를 위해서 <range>를 이용하여 0과 1사이를 29개의 값으로 나눈 뒤 이것을 <f(x)>를 이용하여 2pi만큼 곱하였다. 이것의 결과로 원을 그릴 수 있다.
 
 

함수를 이용하여 만든 매개변수 원, (Scalar > Trig)에서 <Sin>과 <Cos>을 찾을 수 있으며 함수는 x * 2Pi 로 정의되어 있다.
 
 

다른 예시로 <Fibonacci>와 다른 몇 가지 간단한 함수(x: F(x)=x/100, y: F(x)=x/10)에 의하여 정의된 점들이다. 초록색으로 표시된 컴퍼넌트의 경우 <number slider>로부터 들어오는 값에 2를 더하여 (F(x)=x+2) <series>가 생성하는 수의 개수를 <Fibonacci>가 생성하는 수의 개수와 같게 만들어 주는 것이다. 이를 조작하여 쉽게 기하체를 만들어 낼 수 있다.
 
 

<range>는 0 부터 2 까지의 수를 60로 나누고 있으며 <Function>은 <range>로부터 나온 값에 2Pi를 곱한다. 이 값이 <sin>을 통하여 X=t * Sin(t) 되고 다시, <cos>를 거치며 Y=t * Cos(t) 가 된다. 이를 위하여 <multiplication>이 사용되었다. 이처럼 간단한 연산은 컴퍼넌트를 이용하여 계산할 수 있다. 각 값은 <pt>의 인풋이 된다.
 
 

조금 더 복잡한 예이다. Inter tangent spiral은  <range>는 0부터 4의 정의역을 가지며 이것을 400으로 나누고 있다.  첫 번째 <pt>의 X에는 F(x) = x * Sin(x*2 Pi), Y에는 F(x) = x * Cos(x * 2 Pi) 가 들어간다. 두 번째 <pt>는 이 것이 반대로 들어가 있다.
 
 

점의 그룹으로 이루어진 Moebius 이다. <u> 와 <v>는 <range>의 이름을 바꾼 것이다. 이 Moebius를 생성하기 위해 필요한 정의역은 위 그림에 표시되어있으며 함수는 아래와 같다.
 
X= Sin(u)*(-2+v*sin(u/2))
Y= Cos(u)*(-2+v*sin(u/2))
Z= v*Cos(u/2)
 
위 값들은 모두 <point>에 input 되어 점을 만들게 된다.
 
함수를 이용하여 표현할 수 있는 작업은 끝이 없다. Grasshopper 에서 사용 가능한 수학관련 자료를 쉽게 찾을 수 있다. 중요한 것은 원래 주어진 data를 이용하여 다른 수치를 생성하고 이것을 다른 컴퍼넌트의 인풋으로 사용할 수 있으면 된다.
 
이처럼 간단한 수치값과 함수를 이용하여 복잡한 기하체를 생성할 수 있으며 이것이 바로 Algorithm이 작동하는 방식이다. 지금부터 기하학에서 중요한 개념들을 살펴보고 그것을 어떻게 이용하면 design을 할 수 있는지를 살펴보겠다. 아래 평면은 rhino의 수학 plug-in을 이용하여 생성한 Enneper surface 이다.
 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s