본문 바로가기
2023-1/컴퓨터그래픽스

Parametric Cubic Curves

by 철없는민물장어 2023. 6. 14.
728x90
반응형
더보기

다항식을 이용하여 곡선을 표현하는 방법은 현실적으로 구현하기 힘들기때문에

사용자-제시된 데이터포인트 셋을 사용. 4개의 점으로 3차 다항식을 이용한다.

3차원 여러 곡선조각으로 나누어 객체를 만든다.

 

Interpolation splines 보간곡선

점을 지나면서 곡선을 그림

 

Approximation splines 근사 곡선

점의 근처를 지나면서 곡선을 그림

 

Convex hull 

볼록다각형 외관이 곡선의 모양을 예측할 수 있게 한다.

(시작점과 끝점은 점을 지나고, 중간 두 점은 점의 근처를 지남)

 


더보기

연속 조건

Parametric continuity condition

C0: 점이 만나야함

C1: C0를 만족하면서 접선의 기울기가 같아야함

C2: C1을 만족하면서 2차미분도 같아야함(기울기의 변화량)

 

Geometric continuity condition

G0: 좌표값이 같음

G1: G0를 만족하면서 탄젠트벡터 방향이 같아야함

G2: G1을 만족하면서 방향은 같고 크기변화율도 비례해야함

컴퓨터 그래픽스에서 곡선을 표현하는 방법 중 하나는 다항식을 이용하는 것이지만, 현실적으로 이를 구현하는 것은 어려움이 있습니다. 대신 사용자가 제공하는 데이터 포인트 세트를 이용합니다. 예를 들어, 4개의 점을 이용해 3차 다항식을 구현합니다. 이렇게 객체를 구성하는 데에는 3차원의 여러 곡선 조각을 사용합니다.

'보간곡선(Interpolation splines)'이라는 방법은, 곡선을 그리는 동안 각 점을 정확히 통과하게 됩니다.

반면에 '근사 곡선(Approximation splines)'은, 곡선이 각 점의 근처를 지나게 됩니다.

'볼록다각형(Convex hull)'은 곡선의 외관을 예측하는데 도움을 줍니다. 시작점과 끝점은 정확히 점을 통과하고, 중간의 두 점은 점의 근처를 지나게 됩니다.

또한, 곡선을 구성하는 데에는 '연속 조건'이 필요합니다. '매개변수 연속성 조건(Parametric continuity condition)'에는 C0, C1, C2 세 가지가 있습니다. C0는 점들이 서로 만나야 하는 조건, C1은 점들이 만나면서 접선의 기울기도 같아야 하는 조건, C2는 접선의 기울기뿐만 아니라 기울기의 변화율도 같아야 하는 조건입니다.

그리고 '기하학적 연속성 조건(Geometric continuity condition)'도 있습니다. G0는 좌표 값이 같아야 하는 조건, G1은 좌표 값이 같으면서 탄젠트 벡터 방향도 같아야 하는 조건, G2는 방향이 같을 뿐만 아니라 크기의 변화율도 비례해야 하는 조건입니다.

 


곡선은 컴퓨터 그래픽스에서 중요한 개념이며, 주로 세 가지 유형의 곡선이 사용됩니다.

1. 헤르미트 곡선(Hermite curve): 이 곡선의 형태는 두 끝점과 그 끝점에서의 탄젠트 벡터(기울기)에 의해 결정됩니다.

2. 베지어 곡선(Bezier curve): 이 곡선은 또한 두 끝점을 기반으로 합니다. 하지만 여기서 중간점 두 개가 끝점의 탄젠트 벡터를 조절하거나 '컨트롤'합니다. 이는 곡선이 어떻게 구부러지는지를 결정합니다.

3. 스플라인 곡선(Spline): 이 곡선은 보통 다항식 조각들의 모음으로 이루어진 곡선입니다.

큐빅 베지어 곡선(Cubic Bezier curves)은 네 개의 컨트롤 점을 기반으로 생성됩니다. 이 곡선은 두 끝점을 정확히 통과하고, 두 중간점은 근사적으로 지나게 됩니다. 이는 곡선이 일반적으로 중간점들의 위치를 따라 구부러지지만, 그 점들을 정확하게 통과하지는 않는다는 것을 의미합니다.

728x90
반응형

'2023-1 > 컴퓨터그래픽스' 카테고리의 다른 글

Illumination models  (0) 2023.06.15
Visible-Surface Determination  (0) 2023.06.15
Projections/Curves and Surfaces  (0) 2023.06.14
Viewing 3D world on 2D displays  (0) 2023.05.06
Filling Polygons  (0) 2023.03.20

댓글