캣멀-롬 스플라인(Catmull-Rom Splines)
Last updated
Last updated
캣멀-롬 스플라인은 3차 허밋 스플라인에서 시작(U)과 끝(V) 지점의 속도 벡터를 결정하기 위한 특정한 값을 가진 스플라인 입니다. 새로운 스플라인 이라기 보다는 3차 허밋 스플라인을 구현하기 위한 기술이라고 생각해도 좋습니다. 각 지점을 통과하는 곡선을 구현하려면 여기서 설명하는 캣멀-롬 스플라인이 좋은 방법입니다.
먼저 시작점과 끝점, 그리고 각 노트들을 의미하는 일련의 점들부터 그려봅시다.
스플라인의 시작과 끝지점에서의 속도는 0으로 가정합니다(여기서는 0과 6지점).
점 0에서 2로 가는 벡터를 구합니다.
이 벡터가 점 1에서의 접선이 됩니다.
이제 이 벡터를 반으로 줄입니다.
짠! 이제 점 0과 1 그리고 각각의 속도벡터가 생겼으니 허밋 곡선을 그려봅시다.
이제 점 1에서 3으로 가는 벡터를 계산해 봅시다.
이 벡터는 점 2를 위한 접선이 될것입니다.
이 벡터도 반으로 줄입니다.
이전과 마찬가지로 허밋 스플라인을 그려봅시다.
점 3에 대한 계산도 같은 방식으로 반복합니다.
점 4에 대한 계산도 똑같이 반복합니다.
점 5도 계산해 볼까요?
초반에 점 6에 대한 속도를 0으로 만들어놨기 때문에 추가 계산은 필요없습니다. 마지막 허밋 곡선을 그리면 캣멀-롬 스플라인이 완성됩니다.
원하는 위치에 노트들을 배치합니다.(A, D 등등)
만약 N번째 지점을 이라고 한다면, N번째 지점에서의 속도 은 다음 공식으로 구할 수 있습니다.
즉, 점 P에에서의 속도는 [이전 점에서 다음 점을 가리키는 벡터의 절반] 인 것입니다.