Generative Algorithm 017

Chapter_4_변환 Transformations
변환(transformation) 은 3d 모델링에서 가장 중요한 연산 중 하나이다.  이를 이용하면 초기의 간단한 객체로부터 다양한 결과를 얻을 수 있다. 이 변환을 통하여 객체의 스케일을 바꾸고 방향을 바꾸거나 움직이고, 복사하고, 대칭을 시킬 수 있다. 혹은 객체를 집합시킬 수도 있다. 변환에는 여러 종류가 있다. 이를 ‘선형 변환(linear transformation)’과 ‘나선형 변환(spiral transformation)’ 으로 분류할 수 있다. 선형변환은 2d에, 나선형변환은 3d 공간좌표에 적용이 된다.
 
혹은 변환을 이에 사용되는 객체의 상태 변화에 따라 분류할 수 있다. 회전(rotation), 투영(reflection) 등은 초기 객체를 그대로 유지한다. 하지만 스케일 변환이나 전단 변환(shear transformation)은 초기 객체를 변화시킨다. 또한 비선형적 변환(non-linear transformation)도 존재한다. 변환 뿐만 아니라 회전과 투영에도 다른 여러 종류가 있으며 3d 공간 좌표상에서 스케일 변환에 복수개의 상수가 사용되는 변환 (non-uniform scale transformation) 도 있다. 또한 나선형의 변환을 이용하더라도 여러 변형을 만들어낼 수 있다.
 
객체를 변환시키기 위해서는 기본적으로 객체 자체나 그 일부를 이동시켜야 한다. 이것을 하기 위해 가장 기본적으로 필요한 기하학적 요소가 바로 평면(plane)과 벡터(vector)이다. 이 장에서는 바로 이 평면과 벡터를 이용하여 디자인을 할 수 있도록 하겠다.

변환은 간단한 객체들을 이용하여 복잡한 형태를 만들어 내는데 무척 유용하다. 자연에 존재하는 생물 중에는 이러한 변환의 개념으로 설명할 수 있는 것들이 무척 많다.
 
4_1_벡터와 평면 Vectors and Planes
벡터란 수학적 기하학적 객체로 일정한 크기(magnitude) 혹은 길이(length)와 방향[1], 그리고 을 가진다. 벡터는 하나의 점에서 시작하여 다른 하나의 점으로 향하며, 이 두 점 사이의 길이가 그 크기가 되고 시작점과 끝점에 의해 그 방향이 결정된다. 이러한 벡터는 기하학과 변환에서 폭넓게 사용된다.

점 A와 이것이 벡터에 의하여 이동된 점 B


 
하나의 점과 하나의 벡터가 있다고 가정해보자. 이 벡터를 이용하여 그 점을 이동시키면 그 위치는 벡터의 세기(magnitude)와 그것의 방향(direction)에 영향을 받게 된다. 이러한 기본 개념을 이용하면 기하체를 이동, 스케일 변환, 위치 위동(orientate) 시킬 수 있다.

평면(plane)또한 유용한 기하학적 요소이다. 평면은 무한한 평평한 면으로 원점을 가지고 있다.  Rhinoceros의 construction plane 또한 마찬가지 이다. 우리는 이러한 평면 위에 기하체를 놓고 평면의 방향과 원점을 기준으로 하여 변환을 적용하게 된다. 이러한 평면을 만들기 위해서는 적어도 두 개의 벡터가 필요하며[2] 이 평면을 기준으로 하여 기하체에 변환을 적용할 수 있다.

벡터는 방향(direction)과 강도(magnitude)를 가지고 평면은 원점과 좌표축(orientation)을 가진다. 이 둘을 이용하여 모델을 생성하고 수정하고 변환시킬 수 있다.
Grasshopper에는 컴퍼넌트화 된 기본적인 벡터들과 평면들이 있다. 바로 X 방향 단위벡터,Y 방향 단위벡터 그리고 Z 방향 단위벡터와 XY 평면, XZ평면, 그리고 YZ 평면이다. 이번 장에서는 이것에  컴퍼넌트를 추가하여 모델링을 하는 방법들을 살펴보도록 하겠다.
 
 
[1] 역자 주: 이 경우 한글로 방향이라고 표현되었지만 영어에서는 direction과 sense로 세분화 되어 있다. 더 자세한 내용은 아래 링크에 소개되어 있다.  http://darkwing.uoregon.edu/~struct/courseware/461/461_lectures/461_lecture4/461_lecture4.html
 
[2] 역자 주: 하나의 벡터로는 평면을 정의할 수 없다. 평면이 벡터를 축으로 하여 회전된 무한의 결과값을 얻을 수 있기 때문이다. 이 때문에 적어도 두 개의 벡터가 필요하며 이 두 벡터의 외적 (cross product) 이 평면의 법선(일반적으로 z축)벡터가 된다. 자세한 내용은 다음을 참조
https://geometricmind.wordpress.com/2010/11/18/essential-mathematics-for-computational-design-09-%EB%B2%A1%ED%84%B0%EC%9D%98-%EC%99%B8%EC%A0%81/
 

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