# 3차 허밋 스플라인(Cubic Hermite Splines)

### 3차 허밋 곡선

![](https://3665878343-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LngmcDPWb1XA1VNz9ii%2F-LpqpSLVacg5YCMXVCVJ%2F-LpqqX3vSGL4sWfWO1Tz%2Fimage.png?alt=media\&token=1316f602-9d28-4faf-a8f8-87504e9ca08d)

3차 허밋 곡선은 3차 베지어 곡선과 매우 흡사합니다만, 베지어 곡선과는 다르게 가이드 포인트로 사용되는 B와 C라는 점이 존재하지 않습니다.\
그대신, 각 지점 A와 D에 각각 U와 V라고 불리우는 속도 개념이 들어갑니다.

### 3차 허밋 스플라인

![](https://3665878343-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LngmcDPWb1XA1VNz9ii%2F-LpqpSLVacg5YCMXVCVJ%2F-LpqqtHB7zFRkXM6D26K%2Fimage.png?alt=media\&token=546efca0-9722-4f9f-a399-9d0166b546a2)

**연속성** $$(C^0)$$ 을 보장하기 위해서는 첫번째 곡선의 끝점인 D가 두번째 곡선의 시작점인 A와 붙어있어야 합니다.

![](https://3665878343-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LngmcDPWb1XA1VNz9ii%2F-LpqpSLVacg5YCMXVCVJ%2F-LpqrSX5uT-yCd42RGdO%2Fimage.png?alt=media\&token=d1bd064b-c87e-42da-9bac-f502d8909a2b)

**매끄러운 연결** $$(C^1)$$ 을 위해서는 일반적으로 이전곡선에서 V의 방향과와 다음 곡선에서 U의 방향을를 일치하게끔 만들면 됩니다.

![](https://3665878343-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LngmcDPWb1XA1VNz9ii%2F-LpqsMkIyqG0M-82B5Sk%2F-LpqsUx7hED9qCOel96D%2Fimage.png?alt=media\&token=028f46e0-7e07-4087-8ba4-551874c2a926)

**최고의 연속성** $$(C^2)$$ 을 가지려면 V와 U의 **크기**와 **방향**을 모두 일치시켜주면 됩니다.\
즉, 각 노트마다 하나씩의 속도 벡터가 있는 셈입니다.

허밋 곡선과 허밋 스플라인은 모두 파라미터 곡선이며 기본적으로 베지어 곡선과 같은 방식으로 작동합니다.\
3차 허밋 곡선의 공식은 다음과 같습니다 :

$$
P(t) = s^2(1+2t)A + t^2(1+2s)D + s^2tU – st^2V
$$

마지막에 계산되는 부호가 +가 아닌 **-**&#xB77C;는것에 주의 하세요.\
**잘못된 계산** : $$P(t) = s^2(1+2t)A + t^2(1+2s)D + s^2tU + st^2V$$&#x20;

\
3차 허밋 곡선과 베지어 곡선은 기본적으로 똑같기 때문에 **서로 변환이 가능**합니다.\
3차 허밋 곡선을 베지어 곡선으로 변환하기 :&#x20;

$$B = A + (U/3)$$ \
$$C = D – (V/3)$$&#x20;

3차 베지어 곡선을 허밋 곡선으로 변환하기 :&#x20;

$$U = 3(B – A)$$\
$$V = 3(D – C)$$&#x20;
