ARRAY와 BOUNDS 함께 사용하기

우리는 앞에서 ARRAY와 BOUNDS를 모두 배웠다. 그럼, 이것들을 함께 사용하는 방법에 대해서도 알아보자. ARRAY는 일반적인 object들과 달라서 앞에서 배운 내용만으로는 쉽게 BOUNDS를 할 수 없다. 그렇다고 뭐 대단한 기술이 필요한 것도 아니다.

우선 PLANE 하나와 3×3 array의 ELLIPSOID를 만들어보자.

SYSTEM NEW
RESET

SURFACE
  PLANE Z
2 RECT 30 30
OBJECT ‘SURFACE_RECT’

SURFACE
  ELLIPSOID
5 5 5 0 0 0 Z
  ARRAY 2 15 0 0  2 0 15 0
OBJECT ‘SURFACE_ELLIPSOID’

WINDOW Y X
PLOT FACETS
51 51
RETURN

ARRAY_BOUND_01
그림 6.16 PLANE와 ARRAY object 만들기

1) PLANE 이용해서 ARRAY object 잘라내기
ARRAY object를 잘라내는 것은 어렵지 않다. 앞에서 사용하던 BOUNDS .2 명령어를 이용하면 바로 구현이 된다.

SURFACE
  ELLIPSOID
5 5 5 0 0 0 Z
    ARRAY 2 15 0 0  2 0 15 0
OBJECT ‘SURFACE_ELLIPSOID’
    BOUNDS  .2           !! ARRAY object 중에서 +Z축을 남겨둠

ARRAY_BOUND_02
그림 6.17 ARRAY object를 BOUNDS 하기

2) ARRAY Object 이용해서 PLANE 잘라내기
ARRAY Object를 이용해서 PLANE에 구멍을 뚫어보자. PLANE을 BOUNDS 해야하기 때문에 PLANE과 ELLIPSOID의 위치를 바꾸자. 그리고 ‘SURFACE_RECT’ 다음에 BOUNDS .2 명령어를 적용하여 PLANE에 둥근 구멍을 뚫어보자.

SYSTEM NEW
RESET

SURFACE
  ELLIPSOID
5 5 5 0 0 0 Z
    ARRAY 2 15 0 0  2 0 15 0
OBJECT ‘SURFACE_ELLIPSOID’

SURFACE
  PLANE Z
2 RECT 30 30
OBJECT ‘SURFACE_RECT’

BOUNDS .2

WINDOW Y X
PLOT FACETS
51 51
RETURN

위의 프로그램을 실행시켜 보면, 그림 6.16과 같이 BOUNDS가 전혀 이루어지지 않았다. ARRAY로 만들어진 많은 Object들 중에서 어떤 object와 PLANE을 BOUNDS 해야 할지 우리가 생각해도 모를 일이다. 다시 생각해보면, 우리가 원하는 것은 ARRAY 전체를 하나의 object로 생각하지만 ASAP은 ARRAY의 object 하나하나를 따로 생각하고 있는 것이다. 그래서 ASAP에게 ARRAY에 있는object를 하나의 object로 인식하라고 알려 주어야 한다. 이 옵션이 바로 ARRAY…BOUNDS 명령어이다.

위의 프로그램 중에서 ARRAY 명령어 마지막에 BOUNDS 옵션을 추가하고 실행시켜보자.

SURFACE
  ELLIPSOID
5 5 5 0 0 0 Z 
    ARRAY 2 15 0 0  2 0 15 0  BOUNDS
OBJECT ‘SURFACE_ELLIPSOID’   

그러면 ‘SURFACE_RECT’의 PLANE에 ARRAY에 의한 구멍이 뚫린것을 확인할 수 있다.

ARRAY_BOUND_03
그림 6.18 ARRAY Object로 BOUNDS 하기

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

%d bloggers like this: