베지에 곡선


베지에 곡선 혹은 베지어 곡선(Bézier Curve)은 개의 점으로부터 얻어지는 차 곡선으로 수치 해석 분야에서 상당히 중요한 위치를 차지하고 있다. 특히 3차 베지에 곡선은 포스트스크립트 글꼴, 메타폰트(METAFONT), 김프 등에서 부드러운 곡선을 생성하는 데에 이용되고 있으며, 트루 타입 폰트에는 2차 베지에 곡선 알고리즘을 사용한다.

프랑스의 자동차 제조사 르노사의 기술자인 피에르 베지에가 1962년 자동차 몸체 디자인에 사용하면서부터 널리 알려졌다.



커브, 곡선을 그림에 있어 가장 유용한 방법이라 할수있다.



1차(Linear) 베지에 곡선




1차 베지에 곡선은 p0 지점에서 p1 의 지점까지 직선으로 이동하는 것이며, t 는 0 에서 1 까지 변화하는 값이다.



B(t) = (1−t)*P0 + t*P1, t∈[0,1]



10% 진행된 상황에서 ( t = 0.1 ) p0 의 위치는 (1,1) 그리고 p1 의 위치가 (2,2) 일때 위치는 다음과 같다.


[ 1.1 , 1.1 ] = ( 1 - 0.1 ) * [ 1 , 1 ] + ( 0.1 ) * [ 2 , 2 ];



공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



 






2차(Quadratic) 베지에 곡선



 




2 차 베지에 곡선은 1차 베지에 곡선에서 포인트가 하나 추가된 것이다.



B(t) = (1 − t)2P0 + 2t(1 - t)P1 + t2P2, t∈[0,1]


이를 글로 풀어 쓸경우 다음과 같다. 


p0 - p1 의 베이지 곡선을 구한다음 이를 pa 라 한다. 

p1 - p2 의 베이지 곡선을 구한다음 이를 pb 라 한다. 

pa - pb 의 베이지 곡선을 구한다.




공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



'개발' 카테고리의 다른 글

코노하 (Conoha) 사용간 단점.  (0) 2018.01.27
[알고리즘] 등차수열  (1) 2017.08.24
Unity UnityException: Unable to install APK!  (1) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17

+ Recent posts