반응형

블로그 이미지

3DMP engines

3D그래픽스 물리 수학, 프로그래밍 GPU Shader 게임엔진 알고리즘 디자인패턴 matlab etc..


Herimit Curve

 





에르미트 곡선을 3차 다항식으로부터 도출 하여, 곡선 임의의 한 점에서의 근사적 좌표 프레임을 얻어오는

과정 까지를 진행하겠습니다

 

먼저 기호들을 살펴보자 아래의 그림과 같다

P0, p1 은 각각 점이고 Q0은 곡선을 뜻한다 이때 Q0 ~ Qn 까지 생성 될 수 있다( P0~Pn 에 의하여.. )

P'0 과  P'1 은 각 점에서의 접선벡터(속도벡터)를 뜻한다

일반적으로

 

    Q(t) = ( x(t),y(t),z(t) )

 

로 표현 할 수 있다

 또한 이것의 1차 미분은

    Q'(t) = ( x'(t),y'(t),z'(t) )

 

이다, 즉 각 성분을 미분한다 이때의 인자는 t 이므로 t 에 대해서 미분하지만 아래설명에서 t 와 u 를 혼용해서

쓰는데, 개의치 말고 t,u 모두 그냥 실수 범위라고 생각 하면 되겠다

 

* 일반적인 3차방정식으로부터 에르미트 곡선 공식의 유도식은 다음가 같다

 

 

 

원래의 Q 와 Q' 의 식으로 0,1 인자를 이용한 고정된 값을 도출 하는 것이 포인트이다

도출된 값들을 다시 원래의 식에 대입하여 a,b 에 대해 정리 한 후.... 

 

 

* 아래 내용은 어떻게 저 a,b 가 나왔는지에 대한 풀이이다...

 

 

 

구한 상수 값들 ( a,b,c,D ) 을 원래의 3차 다항식에 대입하여 푼다

 

 

 

 

 

이렇게 푼 것을 행렬의 형태로 맞추기 위해 식을 각 포인트( 2개의 점과 2개의 접선) 를 기준으로 식을 다시

정리한다

 

 

 

 

 

 

 

여기까지다 에르미트 곡선의 도출 과정이다

 

 

 

이제는 근사적 좌표계를 어떻게 구할 껏인가에 대한 과정이 되겠다

 

먼저 r(t) 곡선에 대해 생각하면

 

r(t)를 한번 미분하면 속도벡터 v(t) 이고 v(t) 를 한번더 미분하면 a(t) 가속도 벡터를 구할 수 있게 된다

(단, 단위원의 경우)

 

 

 

 

위의 식을 따라가보면 알 수 있는 것은 속도 벡터가 일정한 상수값으로 나올때 가속도 벡터와 속도 벡터의

 

내적은 0 즉 수직이라는 말이 된다

(여기서 유추해 볼 수 있는 것은 이 둘을 외적하면 up 벡터를 구할 수있다는 것)

 

예를 들어보자 PI/4 일경우를 기준으로 어떤 벡터가 나오는지를 확인해보자

 

 

 

그림에서 잘 설명 되어 있으니 , 별 다른 설명은 하지않겠다 , 다만 sin 미분하면 cos , cos 미분하면 - sin 이 된다

 

 

 

이부분이 실질적인 근사적인 좌표프레임을 구하는 부분이다

 

위의 과정을 이해했다면 마지막 과정을 대강 어느정도 이해할 수 있을 것이다

 

근사적이기 때문에 완전한 가속도 벡터가 될 수 없다

 

가속도벡터를 제대로 구하고 싶다면 벡터 미분을 참고하여야 한다

 

근사적으로 구하면 속도에서 좀 이득을 볼 수있을 것이다

 

 

Copyright : 송 정 헌

 


반응형

'수학 (Mathematics) > 3D수학' 카테고리의 다른 글

NDC 공간이란  (0) 2012.11.02
베지어 곡선(Bezier Curve) 유도와 설명  (1) 2012.11.02
두 벡터 사이의 각  (0) 2012.11.02
벡터 미적분, 접선과 가속도 - 공간 곡선  (0) 2012.11.02
두직선의 교점  (0) 2012.11.02

+ Recent posts