Jacquard Weave Algorithm 05

_Data list를 matching 하기

지금까지의 algorithm에서 <image sampler>는 pattern image가 가진 cell의 수만큼만의 data를 생성하였다. 한편으로 우리가 대상면을 나눌때 이 cell의 수에 비례하여 나눌 수 있도록 algorithm을 짰기 때문에 이 data 또한 그에 맞춰 반복되어야 한다. 즉 점에 적용되는 point와 vector, 그리고 vector에 matching되는 amplitude값들이 모두 같이 반복되어야 한다.

아래 그림을 살펴보고 algorithm의 다음 부분에서 필요한 것들을 생각해보도록 하자.  <param viewer>를 통하여 각각의 값을 비교해보도록 하자.

첫번째 그림에서는 두 number slider의 값이 모두 1로 설정되어있다. <param viewer>는 16개의 data branch[1] (<cell_No_Y_Fix>에서 나오는 수와 같다.)가 있고 와 각각의 data branch에 17개의 data(<cell_No_X_Fix>에서 나오는 수와 같다.)

두번째 그림에서는 <number slider; Repeat_Y_(V)>의 경우 2로 설정되어있어 pattern을 Y 방향으로 반복하게 된다. 그 결과 data branch의 수는 두배가 되고 각 branch 안에 있는 data의 수는 그대로 유지된다.

세번째 그림은 이 전 단계와 반대이다. 즉 <number slider; Repeat_X_(U)> 가 2로 설정되어 있어 pattern을 x 방향으로 반복하고 있다. 그 결과 data branch의 수는 변하지 않지만 각 branch 안에 있는 data의 수는 두 배로 늘어나게 된다.

Image

Figure 24_1

Image

Figure 24_2

Image

Figure 24_3

Figure 24 _1.2.3 각기 다른 인수를 가지는 data structure의 비교

Image

Figure 25

위 세가지의 경우를 살펴보고 각각의 data list에 필요한 vector의 amplitude list를 비교해보도록 하자. Pattern을 X방향으로 반복하면 각 branch 내의 data들이 그안에서 반복되어야 하며, Y방향으로의 반복에선 Y방향으로 있는 모든 data branch가 반복되면서 각 branch 안에서의 data들은 변하지 않은채로 남아있어야 한다. 이러한 개념을 구현하기 위해서는 data management에 사용되는 컴퍼넌트를 algorithm에 적용시켜줘야 한다.

Figure 25 Pattern이 각기 방향으로 반복되는 횟수를 결정하는 두 slider의 역할이 매우 중요하다. 둘 다 <receiver> 에 연결되어 data가 복제되는 수를 결정하게 된다.

Image

Figure 26

Figure 26 이전에 생성한 Vector의 amplitude의 경우 그 data list가 <number slider; repeat_X_(U)> 에서 나오는 수만큼 복제된다. <Param Viewer>에서 본 것처럼, data branch 의 수는 <duplicate>가 되기전처럼 그대로 16개 이지만 각 data branch 내부에 있는 data들의 수는 변해있다. 즉 pattern image를 X방향으로 반복시키는 횟수를 정해줄때는 vector의 amplitude 또한 이에 상응하여 변해야 한다는 것을 의미한다.

Image

Figure 27

Figure 27 X방향으로 data를 복제할때는 <duplicate>를 사용했지만 이번에는 <repeat>을 사용해야한다. Data branch를 통째로 복사해줘야 하기 때문이다. 이 algorithm에서 다소 까다로운 부분은 바로 <repeat>의 input 값인 ‘L’을 결정하는 것이다. ‘L’은 최종 결과물의 길이와 같아야 하므로 이것이 각 data branch에 들어있는 data들의 수와 일치하여야 한다. 이는 X방향으로 data를 반복시킬때 사용한 <duplicate>에 <list length>를 적용하면 된다. 이때 이 list length의 값 또한 pattern image가 Y방향으로 반복되는 수만큼 반복되어야 한다. 그러므로 <epeat_Y_(V)>에서 나오는 값만큼 <list length>를 <duplicate>해준다. (이 tutorial에선 두 번 반복되었다.) 이제 두 <duplicate>에서 나오는 값을 <repeat>에 적용시켜고 <parameter viewer>를 확인해보면 우리가 원하는 만큼 data branch의 수가 복제된 것을 알 수 있다.

즉 X 방향으로 data를 반복할때는 각 data branch 안에서 data가 반복된 것이고 Y방향으로 반복시킬때는 data branch 전체가 반복된 것이다.

<parameter viewer>를 통해 우리가 원하는 수만의 data가 복제되는 것을 확인하면서 다 끝났다고 생각할지모르겠다. 그러나 아직 풀어야할 문제가 있다. 어떤 문제인지 확인하기 위해 모든 점들을 위에서 생성한 값(즉, vector amplitude) 만큼 값으로 이동시고 <interpolate curve>가 어떤 결과를 그려내는지를 확인해보자.

Image

Figure 28

Figure 28 <repeat>에서 나오는 값을 <amplitude>의 ‘A’에 입력한다. 결과물을 보면 X방향으로의 반복의 경우 우리가 원하는대로 된 것을 확인할 수 있으나 Y방향의 경우 pattern image가 하나의 단위가 되어 전체적으로 반복되는 것이 아닌, 각 씨실(x방향으로 있는 curve)이 반복된 것을 볼 수 있다.


[1] 저자의 경우 paths of data 와 branch of data를 혼용하였지만 이 번역본에서는 모두 data branch로 표현되었다.

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