Jacquard Weave Algorithm 06

이를 간단한 code로 이해해보자. 반복하기 이전의 data를 A,B,C,D 라 가정하면 우리가 원하는 결과는 A,B,C,D,A,B,C,D 이다. 그러나 반복을 통하여 얻은 결과는 A,A,B,B,C,C,D,D 이다. 이를 해결해야만 우리가 원하는 algorithm을 완성시킬 수 있다. 개념적으로 여러 방법이 있는데 여기서는 data 의 tree structure를 재정렬(rearranging)하는 방법을 택하겠다.

<parameter viewer>를 이용하여 처음 네개의 data branch의 path number를 살펴보면 아래와 같은 순서를 가지고 있는 것을 알 수 있다.

{0;0;0;0;0;0}

{0;0;0;0;0;1}

{0;0;1;0;0;0}

{0;0;1;0;0;1}

그러나 우리가 원하는 path number의 순서는 아래와 같다:

{0;0;0;0;0;0}

{0;0;1;0;0;0}

{0;0;0;0;0;1}

{0;0;1;0;0;1}

즉 data branch의 순서가 위와 같이 정리된다면 pattern 전체를 반복시킬 수 있을 것이다. 이를 위해서는 먼저 위와 같은 순서를 가지는 path number를 생성해준뒤 data branch를 이에 맞춰 재정렬 해줘야 한다. 이를 위해서 먼저 path number를 생성하여보자.

Figure 29

Figure 29 우리가 얻어야 하는 path number는 위와 같다. 이를 살펴보면 일관되게 반복되는 0;0;외에 두 개의 수열이 있는 것을 알 수 있다.

  1. 첫번째 수열의 경우 그 값은 Y 방향의 cell의 수와 일치하고 이것의 반복 횟수(iteration)는 <Repeat_Y_(V)>에서 나오는 값과 일치한다.[1]
  2. 두번째는 수열의 경우 그 값은 <Repeat_Y_(V)>에서 정해진 반복의 횟수와 일치하고 이것이 반복되는 횟수는 Y방향의 cell의 수와 일치한다.[2]

Algorithm이 특별한 것은 아니지만 약간의 생각과 집중이 필요하다. 아래에서 보여지는 다음 단계는 위에서 생성한 수가 무엇을 의미하는지를 확실하게 보여줄 것이다.

Figure 30

Figure 30 먼저 세 개의<receiver>를 이용하여 canvas에 너무 많은 선이 그려지는 것을 피하도록 하자. 위 세 값은 앞으로 반복적으로 사용될 것이다. component의 이름을 위와 같이 바꿔 나중에 혼동되는 것을 방지해주도록 하자.

Figure 31

Figure 31 앞서 살펴본것 처럼 다섯 개의 다른 수를 생성하여 하나의 data list에 합쳐줘야 한다. 이때 모든 data는 string이 되어야 한다.[3] 첫 부분은 바로 ‘{0;0;’ 이다. 이를 <duplicate>해준다. 이때 그 수는 대상면에 적용되는 Y방향의 cell의 수 (target_srf_cell_Y)에 맞춰주도록 한다.

Figure 32

Figure 32 두 번째 부분은 <series>를 이용하여 생성해주도록하자. 먼저 수의 시작을 0.0, 등차를 1로하는 <series>를 불러온뒤 이것의 길이값’C’에 <Receiver_(Cell_No_Y_Fix)>를 입력해준다. 여기서 나오는 값은 실수(real number)이기 때문에 이를 <integer>에 연결하여 정수로 바꿔준 뒤 다시 이것을 <string>을 이용하여 문자 data로 바꾸어준다.  이것을 Y 방향으로 pattern이 반복되는 수만큼 반복시켜준다.

Figure 33

Figure 33 세번째 부분은 다시 ‘;0;0; ‘의 반복이다. 이것이 반복되는 수는 대상면에 적용되는 Y방향으로의 cell의 수와 같다.

Figure 34

Figure 34 네번째 부분은 다시 <series>로 생성해준다. ‘C’에 <Receiver_(Repeat_Y_(V))>에서 나오는 수를 입력시켜주도록 한다. 이를 다시 <integer>와 <string>을 이용하여 정수화, 문자화 시켜준다. 또한 <duplicate>를 이용하여 pattern image의 Y방향 cell의 수만큼 반복시켜주어야 한다. 이때 <duplicate>의 Boolean값인 ‘O’를 false로 입력해줘 0과 1이 반복되는 순서를 바꿔준다. [4]

Figure 35

Figure 35 string의 마지막 다섯번째 부분은 ‘} ’으로 이또한 대상면에 생성되는 Y방향의 cell의 수만큼 생성되면 된다.

Figure 36

Figure 36 이제 위에서 생성한 다섯개의 string data list를 하나로 합쳐줘야 한다. 이를 위해 사용 가능한 것은 원하는 수만큼의 변수를 줄 수 있는 <variable expression>이다. 이를 우클릭한뒤 input manager를 이용하여 입력되는 변수를 다섯개로 설정해준다. 다시 function을 a & b & c & d & x 로 설정해주고 각 data list를 입력해주면 위처럼 하나의 data list를 생성해준다.

이렇게 합쳐진 string data list의 결과는 아래와 같다.

Figure 37

Figure 37 결과를 살펴보면 우리가 원하는 순서대로 path number를 생성한 것을 알 수있다.

Figure 38

Figure 38 이제 앞서 생성한 vector amplitude값에서 나오는 각 data branch의 순서를<tree branch>를 이용하여 재정렬해준다. <tree branch>의 ‘P’에 위에서 생성한 path number를 입력해준다.

Figure 39 <tree branch>의 path에 string값이 입력되었다. 이제 우리가 생성한 geometry를 확인해보자.

Figure 40

Figure 40 재정렬된 data가 vector amplitude로 적용되었으며 이 값에 따라 점들이 <move>된 것을 확인할 수 있다. 위 image를 통하여 pattern을 확인하는 것이 다소 어렵지만 이전처럼 같은 형태를 가진 curve가 한 번 반복된 뒤 다음 curve로 넘어가는 것이 아니라는 것은 쉽게 확인 가능하다.


[1] 위 diagram은 대략적으로 그려진 것이다. 이 tutorial에서 Y 방향의 cell의 수는 16개이고 이것이 2회 반복된다. 각 data의 index number는 항상 0부터 시작하므로 이는  [0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11, 11,12,12,13,13,14,14,15,15]와 같다는 것을 알 수 있다. 이를 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15] 로 바꿔주어야 한다.

[2] 이또한 Y 방향으로 pattern이 2회 반복되는데 data의 index number는 항상 0부터 시작하기 때문에 [0,1]이 반복되는 것이다. 즉 우리가 원하는 결과는 [0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1, 0,1] 이다.

[3] Data type에 대한 자세한 설명은 다음 링크를 참고하기 바란다. http://en.wikipedia.org/wiki/Data_type

[4] 이 tutorial의 경우 Y방향으로 pattern image가 반복되는 횟수가 2이기 때문에 [0,1]이 반복된다. 이것이 만약 3이라면 [0,1,2]가 반복되어야 한다. 또한 <duplicate>의 경우 [0,1,2]가 입력되었을때 Boolean data가 (default 값인) true라면 [0,1,2,0,1,2]과 같은 형태로 반복된다. 이것을 false로 바꿔주면 [0,0,1,1,2,2]와 같은 형태로 <duplicate>된다. 이것을 쉽게 바꿔줄 수 있는 component로는 <Boolean toggle>이 있다.

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