Grasshopper

[라이노 그래스호퍼 벡터] 챕터 09. 파라메트릭 커브

wwrww 2021. 4. 8. 08:13

(1) 파라메트릭 커브란?

앞서서 변수와 벡터를 이용해 선과 면을 정의할 수 있었던 것처럼, 파라메트릭 커브란 변수를 이용해 선을 정의한 것을 의미한다. 3d 모델링을 하다 보면 X, Y, Z 공간 상의 절대적인 좌표보다 내가 만든 객체 안에서의 상대적인 위치를 알아야 하는 경우가 종종 생긴다. 이때 파라메트릭 객체들을 정의하는 변수들을 이용해 객체 내부의 상대적인 위치를 파악할 수 있다.

 

파라메트릭 커브와 변수에 대한 내용은 시간에 따라 나의 위치를 출력한다는 비유를 들어 쉽게 이해할 수 있다.

 

(2) 파라메트릭 커브와 변수 = 경로와 경과 시간

Route from my house to friend's house

위 이미지에서 X 축의 0부터 20은 시간을 나타내고 나의 걸음 속도가 항상 일정하다고 할 때, 시간은 내가 친구 집으로 갈 떄의 위치를 자동적으로 출력해준다. 예를 들어 경과 시간이 0분일 때 나는 집에서 출발했을 테고, 5분 뒤에는 공원, 10분 뒤에는 지하철, 15분 뒤에는 영화관을 지나 정확히 20분에는 친구네 집에 도착해있을 것이다.

 

여기서 변수는 경과 시간으로, 경과 시간에 따라 커브(경로) 위에서의 나의 위치 또한 달라진다. 파라메트릭 커브(Parametric curve) 또한 변수 공간에 의거하여 나의 실제 3D 공간에서의 위치를 출력하는 커브이다. 다시 경로와 시간으로 비유를 들자면 경로는 3D 공간 상의 커브(Curve in 3D space)이고, 경과 시간은 커브의 변수(Curve parameter)이다.

 

(3) 커브 도메인과 평가, 기울기

 

Curve domain, Evaluate and Tangents

커브 도메인은 파라미터 값들의 범위를 뜻한다. 위의 예시에서 커브 도메인은 0에서 20이 되는 것이다. 그리고 추가로 알아두면 좋은 개념으로는 "평가"라는 개념이 있는데, 영어로는 evaluate 이라고 한다. 용어가 조금 어렵지만, 파라미터 공간 상의 값들을 3D 공간상의 위치(점)로 출력하는 것을 "평가한다"라고 표현한다. 파라미터를 3D 공간으로 평가하면 점이 출력되는 것과 동시에 그 점에서의 커브에 대한 기울기 또한 산출된다. 이 기울기는 커브의 방향으로 진행하는 점에서의 방향을 뜻한다.

 

Reparameterizing curve

그러나 유념해야 할 것은 같은 커브라도 커브 도메인은 얼마든지 바뀔 수 있다는 것이다. 예를 들어 어느 날은 친구네 집까지 가는 데에 걸어가지 않고 자전거를 타고 간다고 가정했을 때 걸어가는 것에 비해 정확히 절반이 걸린다고 생각해보자. 그렇다면 0부터 20이었던 커브 도메인은 0부터 10으로 변할 것이다. 그리고 각 지점들이 갖는 도메인 값은 그 간격을 유지한 채로 공원의 변수 값은 2.5, 지하철은 5, 극장은 7.5, 친구의 집은 10으로 재변수화(Reparameterize) 가 된다.

 

(4) 파라메트릭 커브 용어 정리

  • 파라메트릭 커브(Parametric curve): 변수 공간상의 변수로 정의되는 3D 공간상의 커브
  • 커브 변수(Curve parameter): 3D 공간상의 점으로 평가되는 변수 공간의 숫자
  • 커브 영역(Curve domain): 3D 공간상의 커브의 모든 점들로 평가되는 변수 공간 값들의 영역
  • 평가(Evaluate): 변수 공간의 변수를 3D 공간의 위치(점)으로 출력하는 것
  • 기울기(Tangents): 커브 위 점에서의 기울기로, 커브 방향으로 진행하는 점에서의 방향