지도 상에 그림을 그리거나 제어점을 통한 컨트롤러 곡선을 그릴 때 아래와 같은 다양한 방식의 곡선들이 이용됩니다.
* 부드러운 곡선의 모양을 다항식으로 표현
- Bezier, B-Spline, NURBS, cubic spline(3차스플라인) 등
- 제어점을 지정하여 곡선의 형태를 생성
* 보간곡선과 근사곡선
- 보간(lnterpolation) : 주어진 제어점을 통과
- 근사(Approximation) : 제어점을 연결하는 선의 모양에 근사
- 폴리곤 : 직선을 가지고 점과 점 사이를 채우는 것으로 보통 선형보간 이라고 함
* 곡선의 국부제어
- 제어점 하나가 바뀔 때 영향을 미치는 부분
* 블록다각형(Convex Hull) 내 포성
- 곡선은 항상 Convex Hull 내에 포한된다.
- 곡선의 개괄적인 모양을 파악, 곡선 클리핑에도 이용
* Nurbs 곡선방정식
NURBS 방정식이란 Non-Uniform Rational B-Spline 방정식을 의미하는데 B-spline 곡선에서 매듭값의 간격이 일정치 않을 때 유도되는 non-uniform B-spline 함수를 블렌딩 함수로 사용한다는 점에서는 비균일 B-spline 곡선과 다른점이 없다. 그러나 비균일 B-spline 곡선에서는 조정점의 x,y,z 좌표를 각각 이들 블렌딩 함수로 섞어주면 되지만, NURBS 곡선에서는 조정점을 호모지니어스 좌표계를 사용하여 각각을 (xihi, yihi zihi hi)의 형태로 표시하고 이들 네 개의 좌표를 블렌딩 함수로 섞어 주도록 한다. NURBS 곡선식은 일반적인 B-spline 곡선식을 포함하는 더 일반적인 형태라고 할 수 있다. NURBS 곡선은 일반적인 B-spline 곡선에 비해 다음과 같은 장점을 갖는다.
첫째, 일반적인 B-spline 곡선에서는 곡선의 모양을 변화시키기 위해 각각의 조정점에서 x,y,z 세 좌표를 조절하는 세 개의 자유도가 허용하나, NURBS 곡선에서는 각각의 조정점에서 호모지니어스 좌표값까지 포함하여 네 개의 자유도가 허용된다. 따라서 곡선의 보다 자유로운 변형이 가능하다. 실제로 호모지니어스 좌표값을 증가시키면 곡선을 해당 조정점 쪽으로 끌어 당기는 효과가 있다.
둘째, 일반적인 B-spline 방정식으로는 원, 타원, 포물선, 쌍곡선 등 원추 곡선을 근사하게 밖에 나타내지 못하지만, NURBS 곡선은 이들 곡선을 정확하게 표시할 수 있다. 따라서 NURBS 곡선은 자유 곡선은 물론 원추 곡선까지 한 방정식의 형태로 나타내게 하므로 프로그램 개발시 그 작업량을 줄여 준다. 예를 들어 곡선과 곡선의 교차점을 계산하는 프로그램을 개발하는 경우, 원호와 원호, 원호와 자유곡선, 원호와 포물선 등 모든 가능한 경우에 해당하는 교차점을 계산하는 프로그램을 만드는 대신, 이들 원추 곡선을 NURBS 방정식으로 표시 한다면 NURBS 곡선과 NURBS 곡선의 교차점을 계산하는 프로그램 하나로 해결할 수 있을 것이다
* 허미트 곡선 방정식 (블렌뎅함수)
p=p(u)= p0 (1- 3u2 + 2u3 )+ p1(3u2 - 2u3 )+ p0' (u- 2u2 + u3 )+ p1' (- u2 + u3 )
위에 있는 이 방정식은 바로 베지어와 B-스플라인과 같은우리가 원하는 곡선을 자유롭게 표현할 수 있도록 해 주는 마법상자와도 같은 공식입니다. . 이러한 공식을 허마이트 곡선식(Hermite interpolation)이라고 합니다. 여기에서 u의 값은 0과 1 사이입니다. 여기에서 p0, p1, p0', p1' 값이 어떻게 되는가에 따라서 이 공식으로 어떤 곡선이 만들어지는가가 결정됩니다. 이러한 함수를 블렌딩 함수(blending function)라고 합니다.
CAD 시스템에서 사용되는 곡선 방정식으로 가장 많이 사용되는 것은 삼차식이다. 왜냐하면 두 개의 곡선을 연결하여 복잡한 형태의 곡선을 만들 때, 양쪽 곡선이 모두 삼차식이면 연결점에서 이차 미분까지 연속하게 구속 조건을 줄 수 있으므로 곡률의 연속을 보장할 수 있기 때문이다. 물론 삼차식 이상이기만 하면 곡률의 연속을 보장할 수 있지만, 차수가 높아지면 계산 시간이 오래 걸리고 또 곡선의 형상이 미세한 진동을 보이는 단점이 발생하므로 삼차식 이상은 잘 사용하지 않는다. 삼차식의 곡선을 매개 변수 u를 이용하여 나타내면 상식적으로 아래와 같은 형태를 생각할 수 있을 것이다.
P(u)=[x(u) y(u) z(u)]=a0+a1u+a2u2+a3u3 (0<u<1)
위식에서 a0,a1,a2,a3는 벡터 계수로서 각각 x,y,z요소를 갖는 열벡터(row vector)이다. 이 식은 a0,a1,a2,a3 와 같은 계수를 변화시킬 때 곡선의 형태가 어떻게 변화할 지를 미리 예측하기 어려운 단점이 있다. 이러한 문제를 극복하기 위해 a0,a1,a2,a3를 P0,P1,P'0,P'1으로 대체한다. 여기서 P0,P1은 곡선의 양 끝점이고 P'0,P'1은 양 끝점에서의 접선 벡터이다. 앞의 P0,P1,P'0,P'1의 정의로부터
다음과 같은 네 개의 경계 조건식을 유도할 수 있다.
P0=P(0)=a0
P1=P(1)=a0+a1+a2+a3
P'0=P'(0)=a1
P'1=P'(1)=a1+2a2+3a3
식을 풀어서 a0,a1,a2,a3를 P0,P1,P'0,P'1으로 표시하고 원래식에 대입하면 아래와 같이 곡선식을 P0,P1,P'0,P'1으로 나타낼 수 있다.
P(u)=[1-3u2+2u3 3u2-2u3 u-2u2+u3 -u2+u3][P0,P1,P'0,P'1] 행벡터×열벡터
a0,a1,a2,a3와 같은 대수계수(algebraic coefficient)를 곡선의 형상과 밀접한 관계를 갖는 P0,P1,P'0,P'1과 같은 기하계수(geometric coefficient)로 바꾸어서 나타낸 것을 Hermit곡선식이라 하고 P0,P1,P'0,P'1은 다음의 각각의 함수에 의해 결정되는 영향력으로 각각 곡선의 형상을 결정한다. 따라서 이들 함수를 블랜딩 함수(blending function)이라 한다.
f1(u)=1-3u2+2u3
f2(u)=3u2-2u3
f3(u)=u-2u2+u3
f4(u)=-u2+u3
출처 : 지식인
'개인공간 > 기타' 카테고리의 다른 글
앤드류 카네기 (Andrew Carnegie) (0) | 2014.06.22 |
---|---|
비가올때 함께있어준 사람은 같이 무지개를 볼 자격이 있다. (0) | 2014.06.19 |
검도 (0) | 2014.06.14 |
새로운 에너지를 발전시킨 과학자 니콜라스 테슬러 이야기 (0) | 2014.06.07 |
[마비노기] 스킬별 능력치와 AP 효율 정리 (0) | 2013.05.20 |