베지어 곡선

Bézier curve
4개의 관리점이 있는 입방 베지어 곡선
입방체 베지어 곡선의 경우 [0,1]범위 t에서 기본 함수는 파란색: y = (1 - t), 녹색: y = 3(1 - t) t, 빨간색: y = 3(1 - t) t 및 청록색: y = t입니다.

베지어 곡선(/ ˈb ɛz.i.e ɪ/ BEH-zee-ay)은 컴퓨터 그래픽스 및 관련 분야에서 사용되는 매개 변수 곡선입니다. 이산 "관리점" 집합은 공식을 통해 매끄럽고 연속적인 곡선을 정의합니다. 일반적으로 곡선은 수학적 표현이 없거나 표현이 알려지지 않거나 너무 복잡한 실제 모양에 근접하도록 설계됩니다. 베지어 곡선은 1960년대에 르노 자동차의 차체를 위한 곡선을 디자인하기 위해 사용했던 프랑스 엔지니어 피에르 베지어(Pierre Bézier, 1910-1999)의 이름을 따서 명명되었습니다.[3] 다른 용도로는 컴퓨터 글꼴 및 애니메이션 디자인이 있습니다.[3] 베지어 곡선을 결합하여 베지어 스플라인을 형성하거나 더 높은 차원으로 일반화하여 베지어 표면을 형성할 수 있습니다.[3] 베지어 삼각형은 후자의 특별한 경우입니다.

벡터 그래픽에서 베지어 곡선은 무한히 확장될 수 있는 매끄러운 곡선을 모델링하는 데 사용됩니다. "[note 1]경로"는 이미지 조작 프로그램에서 일반적으로 언급되는 것처럼 연결된 베지어 곡선의 조합입니다. 경로는 래스터화된 이미지의 제한에 구속되지 않으며 수정하기에 직관적입니다.

베지어 곡선은 특히 애니메이션,[4][note 2] 사용자 인터페이스 설계 및 눈 시선 제어 인터페이스의 평활 커서 궤적에서 시간 영역에서도 사용됩니다.[5] 예를 들어, 베지어 곡선을 사용하여 단순히 단계당 고정된 픽셀 수로 이동하는 것이 아니라 A에서 B로 이동하는 아이콘과 같은 객체의 시간에 따른 속도를 지정할 수 있습니다. 애니메이터 또는 인터페이스 디자이너가 작업의 "물리적" 또는 "느낌"에 대해 이야기할 때, 그들은 문제의 이동 시간에 따른 속도를 제어하기 위해 사용되는 특정 베지어 곡선을 언급할 수 있습니다.

이는 예를 들어 용접 암의 움직임이 매끄러워야 불필요한 마모를 피할 수 있는 로봇공학에도 적용됩니다.

발명.

베지어 곡선의 수학적 기초인 번스타인 다항식은 1912년에 확립되었지만, 그 다항식은 50년 정도가 지난 1959년 수학자 폴 드 카스텔자우가 곡선을 평가하는 수치적으로 안정된 방법인 드 카스텔자우의 알고리즘을 개발할 때까지 그래픽에 적용되지 않았습니다. 프랑스 자동차 회사인 시트로 ë에서 처음으로 컴퓨터 지원 설계에 적용했습니다. De Casteljau의 방법은 프랑스에서 특허를 받았지만 1980년대까지[7] 발표되지 않았고, 1960년대에 프랑스 엔지니어 Pierre Bézier에 의해 널리 발표되었습니다. Pierre Bézier는 그 다항식들을 독립적으로 발견하고 르노에서 자동차 차체를 디자인하는 데 사용했습니다.

구체적인 경우

베지어 곡선은 관리점 P에서 P까지의 집합으로 정의되며, 여기서 n은 곡선의 순서(선형의 경우 n = 1, 2차의 경우 2, 3 등)라고 합니다. 첫 번째 및 마지막 관리점은 항상 곡선의 끝점이지만 중간 관리점은 일반적으로 곡선 위에 놓이지 않습니다. 다음 절의 합계는 아핀 조합, 즉 계수의 합계가 1인 것으로 이해됩니다.

선형 베지어 곡선

서로 다른 점 P0 P1 주어졌을 때, 선형 베지어 곡선은 이 두 점 사이의 선일 뿐입니다. 곡선은 다음과 같습니다.

이것은 가장 단순하고 선형 보간에 해당합니다.[8] 수량 - P } -은 시작점에서 종료점까지의 변위 벡터를 나타냅니다.

이차 베지어 곡선

현악에서의 사차 베지어: 끝점(•)과 관리점(x)은 2차 베지어 곡선(⋯)을 정의합니다.

2차 베지에 곡선은 주어진0P1, P2, P에 의해 함수 B(t)에 의해 추적되는 경로입니다.

() =( 1- ) [ ( - t ) P 0 + t P 1 ] + t [ ( 1 - t ) P 1 + t P 2 ], 0 ≤ t ≤ 1 {\displaystyle \mathbf {B} t) = (1-t) [ (1-t)\mathbf {P} _{0} + t\mathbf {P} _{1} + t [ (1-t)\mathbf {P} _{1} + t\mathbf {P} _{2}, 0\leq t\leq 1}

이는 각각 P에서0 P까지의1 선형 베지어1 곡선2 P에서 P까지의 선형 곡선에서 대응하는 점들의 선형 보간으로 해석될 수 있습니다. 앞의 방정식을 재배열하면 다음과 같은 결과가 나옵니다.

이는 P1 대한 대칭성을 강조하는 방식으로 작성할 수 있습니다.

이는 t에 대한 베지어 곡선의 도함수를 즉시 제공합니다.

이로부터 P0 P에서2 곡선에 대한 접선은 P에서1 교차한다고 결론지을 수 있습니다. t가 0에서 1로 증가함에 따라 곡선은 P에서0 P1 방향으로 출발한 다음 휘어져서1 P 방향에서 P2 도달합니다.

t에 대한 베지어 곡선의 두 번째 도함수는

큐빅 베지어 곡선

평면 또는 고차원 공간에 있는 네 0 1 P, P, P2, P3 입방 베지어 곡선을 정의합니다. 곡선은 P1 향해 가는 P에서0 시작하여 P2 방향에서 P3 도달합니다. 일반적으로 P1 또는 P2 통과하지 않으며, 이 점들은 방향 정보를 제공하기 위한 것일 뿐입니다. P1 P2 사이의 거리는 곡선이 P2 방향으로 향하기 1 P 방향으로 이동하는 "거리"와 "속도"를 결정합니다.

Pi, Pj, Pk 정의되는 이차 베지어 곡선에 대해 BPi,Pj,Pk(t)를 쓰면, 이차 베지어 곡선은 두 이차 베지어 곡선의 아핀 조합으로 정의할 수 있습니다.

곡선의 명시적인 형태는 다음과 같습니다.

일부1 P2 P 선택의 경우 곡선이 교차하거나 첨자를 포함할 수 있습니다.

4개의 구별되는 점들로 이루어진 어떤 급수도 4개의 점들을 모두 순서대로 통과하는 3차 베지에 곡선으로 변환될 수 있습니다. 어떤 입방체 베지어 곡선의 시작점과 끝점, 그리고 곡선을 따라 t = 1/3, t = 2/3에 해당하는 점들이 주어지면, 원래 베지어 곡선에 대한 통제점들을 복구할 수 있습니다.

t에 대한 입방체 베지어 곡선의 도함수는

t에 대한 베지어 곡선의 두 번째 도함수는

일반적 정의

베지어 곡선은 어떤 차수 n에 대해서도 정의될 수 있습니다.

재귀적 정의

n도의 베지어 곡선에 대한 재귀적 정의는 n도 - 1도의 두 베지어 곡선에서 대응하는 한 쌍의 점 대 점 선형 조합(선형 보간)으로 표현합니다.

0 {}임의0P1, P, ..., Pk 의해 결정되는 베지어 곡선을 나타냅니다. 그런 다음 시작하려면,

이 재귀는 아래 애니메이션에 설명되어 있습니다.

명시적 정의

공식은 다음과 같이 명시적으로 표현할 수 있습니다(여기서 t와0 (1-t)0는 [0,1] 전체에 걸쳐 연속적으로 1이 되도록 확장됩니다).

여기서( i 이항 계수입니다.

예를 들어, n = 5일 때:

용어.

일부 용어는 이러한 모수 곡선과 관련이 있습니다. 우리는 가지고 있다.

여기서 다항식들은

n차의 번스타인 기저 다항식으로 알려져 있습니다.

t = 1, (1 - ) = 1 이항 계수인 (n i) {\displaystyle \scriptstyle {n \choose i}}는 다음과 같습니다.

Pi 베지어 곡선의 관리점이라고 합니다. 베지어 점을 으로0 연결하여 P로 시작하여 Pn 끝나는 다각형베지어 다각형(또는 제어 다각형)이라고 합니다. 베지어 다각형의 볼록한 선체는 베지어 곡선을 포함합니다.

다항식

베지어 곡선을 덜 단순한 번스타인 다항식의 합 대신 다항식으로 표현하는 것이 바람직하기도 합니다. 곡선의 정의에 이항 정리를 적용한 후 약간의 재배열을 수행하면 다음과 같은 결과를 얻을 수 있습니다.

어디에

( 의 많은 평가 전에 계산할 수 있다면 이는 실용적일 수 있습니다 그러나 고차 곡선에는 숫자 안정성이 부족할 수 있으므로 주의해야 합니다(이 경우 de Casteljau의 알고리즘을 사용해야 함). 빈 제품은 1입니다.

특성.

3차 베지어 곡선(노란색)은 2차 곡선(검은색)과 동일하게 만들 수 있습니다.
1. 끝점 복사 및
2. 2개의 중간 관리점(노란색 원)을 끝점에서 2차 곡선의 중간 관리점(검은색 직사각형)까지의 선분을 따라 2/3 배치합니다.
  • 곡선은 _에서 시작하여 에서 끝납니다 이는 소위 끝점 보간 속성입니다.
  • 모든 관리점이 공선인 경우에만 곡선이 선이 됩니다.
  • 곡선의 시작과 끝은 각각 베지어 다각형의 첫 번째와 마지막 부분에 접합니다.
  • 곡선은 임의의 점에서 두 개의 하위 곡선으로 분할되거나 임의의 많은 하위 곡선으로 분할될 수 있으며, 각 곡선은 베지어 곡선이기도 합니다.
  • 과 같이 단순해 보이는 곡선들은 베지어 곡선이나 조각 형태의 베지어 곡선으로 정확하게 설명할 수 없지만, 4입방체 베지어 곡선은 최대 반경 오차가 1,000분의 1 미만인 원과 근사할 수 있습니다. 각 내부 제어 지점(또는 오프라인 지점)이 단위 원의 외부 제어 지점에서 가로 또는 세로로 - 3 ({\2}-1)}{3}}입니다. 보다 일반적으로, 각 내부 제어점이 단위 원의 외부 제어점으로부터 t 4) tan(t/4)}인 경우, 큐빅 베지어 곡선은 원과 근사할 수 있습니다. 여기서 t = 2π/ n {\ = 2\pi / n}(즉, ). ∘ / n {\displaystyl t = 360^{\circ}/n}), n > 2 {\displaystyle n> 2}.
  • 모든 2차 베지에 곡선은 또한 3차 베지에 곡선이며, 더 일반적으로 모든 n차 베지에 곡선은 임의의 m > n에 대한 m차 곡선이기도 합니다. 구체적으로, 기준점 0 _ _ 기준점 …, +1 where , 을 정의하고 n+ 1 : _+1}:\mathbf {P} _{0}, P - 1 : P {\displaystyle \mathbf {P} _{-1}: \mathbf {P} _{n}을 정의합니다.
  • 베지어 곡선은 변동 감소 특성을 가지고 있습니다. 이것이 직관적인 용어로 의미하는 것은 베지어 곡선이 관리점의 다각형보다 더 "환산"하지 않고 실제로는 그보다 더 적게 "환산"할 수 있다는 것입니다.[10]
  • 차수 n Bézier 곡선에는 로컬 제어가 없습니다. 즉, 관리점에 대한 변경은 재계산을 필요로 하므로 전체 곡선의 측면에 영향을 미칩니다. "변경된 관리점에서 멀어질수록 곡선의 변경이 작습니다."[11]
  • 2보다 높은 차수의 베지어 곡선은 교차하거나 관리점의 특정 선택에 대한 첨자를 가질 수 있습니다.

2차 곡선은 포물선 세그먼트입니다.

이차 베지어 곡선과 포물선 세그먼트의 동치

이차 베지어 곡선은 포물선의 한 부분이기도 합니다. 포물선은 원뿔 단면이므로, 일부 자료에서는 이차 베지에를 "원뿔 호"라고 부릅니다.[12] 오른쪽 그림을 참조하여 포물선의 중요한 특징을 다음과 같이 도출할 수 있습니다.[13]

  1. 곡선의 끝점(A 및 B)에서 포물선에 대한 접선은 관리점(C)에서 교차합니다.
  2. D가 AB의 중간점이면 CD(대시선)에 수직인 곡선의 접선은 정점(V)을 정의합니다. 대칭축(대시점 시안)은 V를 통과하며 접선에 수직입니다.
  3. E는 CD에 대해 45° 접선을 갖는 곡선의 한 점입니다(초록색). G가 이 접선과 축의 교점이라면, G를 지나 CD에 수직인 선은 직선(녹색 실선)입니다.
  4. 초점(F)은 축과 선이 E를 통과하고 CD(점이 있는 노란색)에 수직인 교차점에 있습니다. 라투스 직장은 곡선 내 선분(단색 노란색)입니다.

도함수

차수 n의 곡선에 대한 도함수는

Bézier 곡선 구성

선형곡선

B(t)가 P에서0 P로의1 이동을 따라 진행한 진행률(0 ~ 1)을 나타내자. 예를 들어, t=0.25일 때, B(t)는 점 P에서 P까지의 거리의 1/4입니다. t가 0에서 1까지 변하므로 B(t)는0 P에서1 P로 선을 그립니다.

Animation of a linear Bézier curve, t in [0,1]
선형 베지어 곡선의 애니메이션, [0,1]의 t

이차곡선

2차 베지에 곡선의 경우 t가 0에서 1까지 변하는 중간점0 Q1 Q를 만들 수 있습니다.

  • Q0(t)는 P부터0 P까지1 다양하며 선형 베지어 곡선을 설명합니다.
  • Q1(t)는 P부터1 P까지2 다양하며 선형 베지어 곡선을 설명합니다.
  • 0 B(t)는 Q(t)에서 Q1(t) 사이에 선형으로 보간되며 2차 베지어 곡선을 설명합니다.
Construction of a quadratic Bézier curve Animation of a quadratic Bézier curve, t in [0,1]
이차 베지어 곡선의 구축 [0,1]에서 t인 2차 베지어 곡선의 애니메이션

고차곡선

고차 곡선의 경우 그에 상응하는 더 많은 중간 점이 필요합니다. 3차 곡선의 경우 선형 베지어 곡선을 설명하는 중간점0 Q, Q1, Q2 그리고 이차 베지어 곡선을 설명하는 점 R0 R을 구성1 수 있습니다.

Construction of a cubic Bézier curve Animation of a cubic Bézier curve, t in [0,1]
입방체 베지어 곡선의 구축 입방체 베지어 곡선의 애니메이션, t(0,1)

4차 곡선의 경우 선형 베지에 곡선을 설명하는 중간점0 Q, Q, Q12, Q3, 2차 베지에 곡선을 설명하는 점 R0, R1R2, 입방형 베지에 곡선을 설명하는 점 S0S1 구성할 수 있습니다.

Construction of a quartic Bézier curve Animation of a quartic Bézier curve, t in [0,1]
사분위수 베지에 곡선의 구축 [0,1]에서 t 사분위수 베지어 곡선의 애니메이션

5차 곡선의 경우 유사한 중간 점을 구성할 수 있습니다.

Animation of the construction of a fifth-order Bézier curve
5차 베지어 곡선의 애니메이션, 빨간색으로 [0,1] t. 각 하위 차수에 대한 베지어 곡선도 표시됩니다.

이러한 표현은 데 카스텔자우의 알고리즘에서 베지어 곡선을 계산하는 데 사용된 프로세스에 의존합니다.[14]

베지어 곡선의 간격띄우기(또는 쓰다듬기)

수학에서 오프셋 또는 평행 곡선(철도 선로의 레일 사이의 오프셋과 같이 원래 곡선과 "평행"하는 것)이라고 불리는 주어진 베지어 곡선에서 고정된 오프셋에 있는 곡선은 베지어 곡선으로 정확히 형성될 수 없습니다(일부 사소한 경우를 제외하고). 일반적으로, 입방체 베지어의 양면 오프셋 곡선은 10차 대수[15] 곡선이고, 더 일반적으로 n차의 베지어에 대해 양면 오프셋 곡선은 4n - 2차 대수 곡선입니다.[16] 그러나 일반적으로 실용적인 목적을 위해 적절한 근사치를 제공하는 휴리스틱 방법이 있습니다.[17]

벡터 그래픽스 분야에서 대칭적으로 거리가 있는 두 개의 오프셋 곡선을 그리는 것을 스트로킹(Bézier 곡선 또는 일반적으로 여러 개의 Bézier 세그먼트의 경로)이라고 합니다.[15] 오프셋 곡선에서 채워진 베지어 윤곽으로의 변환은 베지어 곡선을 쓰다듬어야 하는 메타폰트에 정의된 글꼴을 더 널리 사용되는 포스트스크립트 유형 1 글꼴로 변환하는 데 실질적으로 중요하며, (효율적인 목적을 위해) 수학적으로 더 간단한 (자기 교집합이 아닌) 베지어 곡선으로 정의된 윤곽을 채우는 작업만 필요합니다.[18]

고도

n도의 베지어 곡선은 같은 모양n도+1도의 베지어 곡선으로 변환될 수 있습니다. 소프트웨어가 특정 정도의 베지어 곡선만 지원하는 경우 유용합니다. 예를 들어, 입방 베지어 곡선에서만 작동할 수 있는 시스템은 동등한 입방 표현을 사용하여 2차 곡선에서 암묵적으로 작동할 수 있습니다.

차수 상승을 수행하려면 등식 (t) =( -t ) B ( ) + t B ( t )를 사용합니다 {\displaystyle \mathbf {B} ( t) = (1-t)\mathbf {B} ( t) + t\mathbf {B} ( t). 성분 _ _ (1 - t)와 t를 곱한 값이므로 값을 변경하지 않고 차수를 1씩 증가시킵니다. 2에서 3으로 도수가 증가하는 예는 다음과 같습니다.

임의의 n에 대하여 우리는 동등성을 사용합니다.

따라서:

- 1 _ + _을 소개합니다

따라서 새로운 관리점은[19]

반복도 상승

정도 상승의 개념을 제어 다각형 R에서 반복하여 제어 다각형 R, R1, R2 등의 시퀀스를 얻을 수 있습니다. r차 상승 후, 다각형 Rr 다음과 같이 주어진 정점 P0,r, P, P1,r2,r, ..., Pn+r,r 갖습니다.

또한 기저 베지어 곡선 B에 대하여,

유리 베지어 곡선

유리 베지어 곡선으로 정확하게 표현된 원뿔 단면의 세그먼트

합리적인 베지어 곡선은 임의의 모양에 더 가까운 근사치를 제공하기 위해 조정 가능한 가중치를 추가합니다. 분자는 가중 번스타인 형태의 베지어 곡선이고 분모는 번스타인 다항식의 가중합입니다. 유리 베지어 곡선은 다른 용도 중에서도 원뿔 곡선을 포함한 원뿔 단면의 세그먼트를 정확하게 표현하는 데 사용될 수 있습니다.[20]

n + 1개의 관리점 P0, ..., Pn 주어지면 유리 베지어 곡선은 다음과 같이 나타낼 수 있습니다.

아니면 간단히

무게에 대한 실수 외에 숫자 체계를 사용하여 표현을 확장할 수 있습니다. 복소 평면에서 가중치가 { {1} 및 {\인 점 {1}, {1}은 반지름이 1인 전체 원을 생성합니다. 원 위에 점과 무게가 있는 곡선의 경우 곡선 모양을 변경하지 않고 무게를 조정할 수 있습니다.[21] 위 곡선의 중심 가중치를 1.35508만큼 스케일링하면 보다 균일한 파라미터를 얻을 수 있습니다.

적용들

컴퓨터 그래픽스

Adobe Illustrator의 Bézier 경로

베지어 곡선은 컴퓨터 그래픽에서 부드러운 곡선을 모델링하는 데 널리 사용됩니다. 곡선이 제어점볼록한 선체에 완전히 포함되어 있으므로 점을 그래픽으로 표시하여 직관적으로 곡선을 조작하는 데 사용할 수 있습니다. 곡선의 제어점에 각각의 변환을 적용하여 변환회전과 같은 아핀 변환을 곡선에 적용할 수 있습니다.

2차3차 베지어 곡선이 가장 일반적입니다. 도수가 높은 곡선은 평가하기에 계산 비용이 더 많이 듭니다. 더 복잡한 모양이 필요할 때 낮은 차수의 베지어 곡선을 함께 패치하여 합성 베지어 곡선을 생성합니다. 벡터 그래픽스 언어(예: 포스트스크립트), 벡터 그래픽스 표준(예: SVG), 벡터 그래픽스 프로그램(: 아트라인, 타임웍스 퍼블리셔, 어도비 일러스트레이터, 코렐드로, 잉크스케이프, 알레그로)에서 복합 베지어 곡선은 일반적으로 "경로"라고 합니다. 베지어 곡선을 꼬임이 없는 합성 베지어 곡선으로 결합하기 위해 G1 연속성이라는 특성은 두 구성 베지어 곡선이 만나는 기준점을 양쪽의 두 기준점에 의해 정의된 선 위에 놓도록 강요하기에 충분합니다.

큐빅 베지어 곡선의 추상적인 구성을 3D로 광선 추적합니다. 곡선을 따라 스윕 볼륨이 있는 광선 교차점은 팬텀 레이-헤어 인터섹터 알고리즘으로 계산됩니다.[22]

베지어 곡선을 스캔 변환(래스터라이징)하는 가장 간단한 방법은 밀접하게 이격된 많은 지점에서 곡선을 평가하고 선분의 근사 시퀀스를 스캔 변환하는 것입니다. 그러나 점들이 너무 멀리 떨어져 있을 수 있기 때문에 래스터화된 출력이 충분히 매끄러워 보이는 것은 아닙니다. 반대로 곡선이 선형에 가까운 영역에서 너무 많은 점을 생성할 수 있습니다. 일반적인 적응 방법은 재귀적 세분화로, 곡선의 관리점을 검사하여 곡선이 작은 공차 내에 있는 선에 근접하는지 확인합니다. 그렇지 않은 경우 곡선을 매개변수적으로 0 ≤ t ≤ 0.5 및 0.5 ≤ t ≤ 1의 두 세그먼트로 세분화하고 각 절반에 대해 동일한 절차를 재귀적으로 적용합니다. 전방 차이 방법도 있지만 오류 전파를 분석하려면 매우 주의해야 합니다.[23]

베지어가 각 스캔 라인과 교차하는 분석 방법은 (입방 베지어의 경우) 입방 다항식의 을 찾는 것과 여러 근을 다루는 것을 포함하므로 실제로는 자주 사용되지 않습니다.[23]

메타폰트에서 사용되는 래스터화 알고리즘은 곡선을 이산화하는 것을 기반으로 하므로 픽셀 경계를 따라 순수하게 수직 또는 순수하게 수평인 일련의 "루크 무브(roook moves)"로 근사화됩니다. 이를 위해 먼저 평면을 8개의 45° 섹터(좌표축과 두 개의 선 =± displaystyle y =\pm x}에 의해)로 분할한 다음 곡선을 더 작은 세그먼트로 분해하여 곡선 세그먼트의 방향을 한 섹터 내에 유지합니다. 곡선 속도는 2차 다항식이므로, 이 선들 중 하나와 평행한 값을 찾는 것은 2차 방정식을 풀어서 할 수 있습니다. 각 세그먼트 내에서 수평 또는 수직 이동이 지배적이며, 끝점 좌표에서 한 방향의 총 계단 수를 읽을 수 있습니다. 예를 들어 오른쪽으로 0~45° 섹터 수평 이동이 지배적이므로 곡선이 오른쪽으로 한 계단 올라야 할 계단을 결정하기만 하면 됩니다.[24]

이 래스터화를 수행하는 징글의 선묘 알고리즘은 곡선을 유리 조각으로 세분화하여 각 픽셀 위치의 오차를 계산하여 곡선을 반복하면서 합성 오차에 따라 45° 각도로 진행하거나 직선으로 진행하는 변형된 곡선 형태도 있습니다. 이렇게 하면 다음 단계 계산이 일련의 정수 덧셈과 뺄셈으로 줄어듭니다.[25]

애니매이션

Adobe FlashSynfig와 같은 애니메이션 애플리케이션에서 베지어 곡선은 움직임과 같은 윤곽을 그리기 위해 사용됩니다. 사용자는 베지어 곡선으로 원하는 경로의 윤곽을 표시하고, 응용 프로그램은 객체가 경로를 따라 이동하는 데 필요한 프레임을 만듭니다.[26][27]

3D 애니메이션에서 베지어 곡선은 키프레임 보간을 위한 2D 곡선뿐만 아니라 3D 경로를 정의하는 데 종종 사용됩니다.[28] 베지어 곡선은 현재 CSS, 자바스크립트, 자바Fx플러터 SDK에서 애니메이션 완화를 제어하는 데 매우 자주 사용됩니다.[4]

글꼴

TrueType 글꼴은 2차 Bézier 곡선으로 구성된 합성 Bézier 곡선을 사용합니다. 다른 언어 및 이미징 도구(: PostScript, 점근선, 메타폰트, SVG)는 곡선 모양을 그리기 위해 입방체 베지어 곡선으로 구성된 합성 베지어를 사용합니다. OpenType 글꼴은 OpenType 래퍼의 기반이 되는 글꼴 기술에 따라 두 가지 종류의 곡선을 사용할 수 있습니다.[29]

FreeType과 같은 글꼴 엔진은 글꼴 래스터화라고 하는 프로세스를 사용하여 픽셀화된 표면에 글꼴의 곡선(및 선)을 그립니다.[12] 일반적으로 글꼴 엔진과 벡터 그래픽 엔진은 일련의 선형 또는 원형 세그먼트로 그릴 수 있을 정도로 곡선이 평평한 지점까지 재귀적으로 분할하여 베지어 곡선을 렌더링합니다. 정확한 분할 알고리즘은 구현에 따라 다르며, 필요한 정밀도에 도달하고 단일음이 아닌 국소적인 곡률 변화를 피하기 위해 평탄도 기준만 존중해야 합니다. 마이크로소프트 엑셀에 있는 차트의 "원활한 곡선" 기능도 이 알고리즘을 사용합니다.[30]

원과 타원의 호는 베지어 곡선으로 정확히 표현될 수 없기 때문에, 그것들은 먼저 베지어 곡선으로 근사되고, 그것들은 차례로 원의 호로 근사됩니다. 임의의 정밀도로 점증적으로 렌더링할 수 있는 원 또는 타원의 호를 사용하여 모든 베지어 곡선의 근사치도 존재하므로 비효율적입니다. 기하학적 구조가 가속화된 최신 하드웨어 그래픽 어댑터에서 사용되는 또 다른 접근 방식은 모든 베지어 및 원뿔 곡선(또는 표면)을 정확히 NURBS로 변환할 수 있으며, 이는 필요한 평탄 조건에 도달하기 위해 먼저 곡선을 재귀적으로 분할하지 않고 점진적으로 렌더링할 수 있습니다. 이 접근법은 또한 모든 선형 또는 원근형 2D 및 3D 변환 및 투영에서 곡선 정의를 유지합니다.[citation needed]

로봇공학

경로가 주변의 장애물이나 물체와 충돌하는지 여부를 명확하게 표시할 수 있는 제어 다각형의 능력 덕분에 베지어 곡선은 로봇 공학에서 엔드 이펙터의 궤적을 생성하는 데 사용될 수 있습니다.[31] 또한 Bézier 곡선을 사용하여 관절 공간 궤적을 정확하게 구별할 수 있습니다. 결과적으로, 관절 공간 궤적의 도함수는 로봇 조작기의 역학 및 제어 노력(토크 프로파일)의 계산에 사용됩니다.[31]

참고 항목

메모들

  1. ^ 잉크스케이프, 어도비 포토샵, GIMP 등의 이미지 조작 프로그램.
  2. ^ Adobe Flash, Adobe After Effects, Microsoft Expression Blend, Blender, Autodesk MayaAutodesk 3ds Max와 같은 애니메이션 애플리케이션에서 사용할 수 있습니다.

참고문헌

인용

  1. ^ Wells, John (3 April 2008). Longman Pronunciation Dictionary (3rd ed.). Pearson Longman. ISBN 978-1-4058-8118-0.
  2. ^ Mortenson, Michael E. (1999). Mathematics for Computer Graphics Applications. Industrial Press Inc. p. 264. ISBN 9780831131111.
  3. ^ a b c Hazewinkel, Michiel (1997). Encyclopaedia of Mathematics: Supplement. Vol. 1. Springer Science & Business Media. p. 119. ISBN 9780792347095.
  4. ^ a b "Cubic class - animation library - Dart API". api.flutter.dev. Retrieved 2021-04-26.
  5. ^ Biswas, Pradipta; Langdon, Pat (2015-04-03). "Multimodal Intelligent Eye-Gaze Tracking System". International Journal of Human-Computer Interaction. 31 (4): 277–294. doi:10.1080/10447318.2014.1001301. ISSN 1044-7318. S2CID 36347027.
  6. ^ Gerald E. Farin; Josef Hoschek; Myung-Soo Kim (2002). Handbook of Computer Aided Geometric Design. Elsevier. pp. 4–6. ISBN 978-0-444-51104-1.
  7. ^ Paul de Casteljau. Mathématiques et CAO. Tome 2 : Formes à pôles. ISBN 9782866010423.
  8. ^ Mario A. Gutiérrez; Frédéric Vexo; Daniel Thalmann (2023). Stepping into Virtual Reality. Springer Nature. p. 33. ISBN 9783031364877.
  9. ^ John Burkardt. "Forcing Bezier Interpolation". Archived from the original on 2013-12-25.
  10. ^ Teofilo Gonzalez; Jorge Diaz-Herrera; Allen Tucker (2014). Computing Handbook, Third Edition: Computer Science and Software Engineering. CRC Press. page 32-14. ISBN 978-1-4398-9852-9.
  11. ^ Max K. Agoston (2005). Computer Graphics and Geometric Modelling: Implementation & Algorithms. Springer Science & Business Media. p. 404. ISBN 978-1-84628-108-2.
  12. ^ a b "FreeType Glyph Conventions / VI. FreeType outlines". The Free Type Project. 13 February 2018.
    "FreeType Glyph Conventions – Version 2.1 / VI. FreeType outlines". 6 March 2011. Archived from the original on 2011-09-29.
  13. ^ Duncan Marsh (2005). Applied Geometry for Computer Graphics and CAD. Springer Undergraduate Mathematics Series (2nd ed.). ISBN 978-1-85233-801-5. ASIN 1852338016.
  14. ^ Shene, C. K. "Finding a Point on a Bézier Curve: De Casteljau's Algorithm". Retrieved 6 September 2012.
  15. ^ a b Mark Kilgard (April 10, 2012). "CS 354 Vector Graphics & Path Rendering". p. 28.
  16. ^ Rida T. Farouki. "Introduction to Pythagorean-hodograph curves" (PDF). Archived from the original (PDF) on June 5, 2015.특히 16쪽 "오프셋 곡선의 taxonomy".
  17. ^ 예를 들어 [1] 또는 [2]입니다. 설문조사는 [3]을 참조하십시오.
  18. ^ Richard J. Kinch (1995). "MetaFog: Converting Metafont shapes to contours" (PDF). TUGboat. 16 (3–Proceedings of the 1995 Annual Meeting). Archived (PDF) from the original on 2022-10-09.
  19. ^ a b Farin, Gerald (1997). Curves and surfaces for computer-aided geometric design (4 ed.). Elsevier Science & Technology Books. ISBN 978-0-12-249054-5.
  20. ^ Neil Dodgson (2000-09-25). "Some Mathematical Elements of Graphics: Rational B-splines". Retrieved 2009-02-23.
  21. ^ J. Sánchez-Reyes (November 2009). "Complex rational Bézier curves". Computer Aided Geometric Design. 26 (8): 865–876. doi:10.1016/j.cagd.2009.06.003.
  22. ^ 알렉산더 레셰토프와 데이비드 뤼베케, 팬텀 레이-헤어 인터섹터. 컴퓨터 그래픽스 및 인터랙티브 기법에 관한 ACM의 진행(2018. 8. 1) [4]
  23. ^ a b Xuexiang Li & Junxiao Xue. "Complex Quadratic Bézier Curve on Unit Circle". Zhengzhou, China: School of Software, Zhengzhou University.
  24. ^ 19~22부
  25. ^ Zingl, Alois "곡선 그리기를 위한 래스터라이징 알고리즘" (2012) http://members.chello.at/ ~easyfilter/Bresenham.pdf
  26. ^ "Using motion paths in animations". Adobe. Retrieved 2019-04-11.
  27. ^ "Following a Spline". Synfig Wiki. Retrieved 2019-04-11.
  28. ^ Dodgson, Neil A. (1999). "Advanced Graphics Lecture Notes" (PDF). cl.cam.ac.uk. University of Cambridge Computer Laboratory. Archived (PDF) from the original on 2022-10-09.
  29. ^ "The difference between CFF and TTF". Know How. Linotype. Archived from the original on 2017-07-03. Retrieved 3 July 2018. The OpenType format was formulated in 1996. By 2003, it began to replace two competing formats: the Type1 fonts, developed by Adobe and based on [P]ost[S]cript, and the TrueType fonts, specified by Microsoft and Apple. (...) TTF stands for TrueTypeFont and indicates that the font data is the same as in the TrueType fonts. CFF stands for the Type1 font format. Strictly speaking, it refers to the Compact Font Format, which is used in the compression processes for the Type2 fonts. (...) the cubic Bézier format of the Type1 fonts is more space-saving compared to the quadratic format of the TrueType fonts. Some kilobytes can be saved in large, elaborate fonts which may represent an advantage on the Web. On the other hand, the more detailed hinting information of the TrueType fonts is useful for very extensive optimization for screen use.
  30. ^ "smooth_curve_bezier_example_file.xls". Rotating Machinery Analysis, Inc. Archived from the original on 2011-07-18. Retrieved 2011-02-05.
  31. ^ a b Malik, Aryslan; Henderson, Troy; Prazenica, Richard (January 2021). "Trajectory Generation for a Multibody Robotic System using the Product of Exponentials Formulation". AIAA Scitech 2021 Forum: 2016. doi:10.2514/6.2021-2016. ISBN 978-1-62410-609-5. S2CID 234251587.
  32. ^ Gross, Renan (2014). "Bridges, String Art, and Bézier Curves". In Pitici, Mircea (ed.). The Best Writing on Mathematics 2013. Princeton University Press. pp. 77–89. doi:10.1515/9781400847990-011. ISBN 9780691160412. JSTOR j.ctt4cgb74.13.

원천

더보기

외부 링크

컴퓨터코드