본문 바로가기
개발/게임) 프로토타입

게임개발) 베지어 곡선(Bezier Curve)

by 테샤르 2020. 7. 21.

베지어 곡선(Bezier Curve)

 

부드러운 커브에 대한 작업을 하다가 정리가 필요할 듯해서 정리하게 되었다.

참고 사이트의 수학 공식을 코드로 옮기면 된다.

참고 : https://en.wikipedia.org/wiki/B%C3%A9zier_curve

 

Bézier curve - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Curve used in computer graphics and related fields Cubic Bézier curve with four control points The basis functions on the range t in [0,1] for cubic Bézier curves: blue: y = (1 − t

en.wikipedia.org

실제 포인트를 n개로 늘려서 진행했다. 여러가지 베지어 곡선에서는 표현 방식이 있는데 t 시간을 1을 기준으로 처리했다.

this.m_vMovePosition = this.m_vStart * Mathf.Pow((1f - t),2f) + 2 * t * (1f - t) * this.m_vPoint1 + (Mathf.Pow(t,2)* this.m_vTarget);

구현한 영상은 다음과 같다.

반응형

빨간 네모(이동 할 오브젝트)

흰색 네모(포인트 지점  n)

초록색 네모(마지막 도착 지점 - Target)

 

포인트가 3개 부터 커브가 눈으로 보이기 때문에 포인트 2개는 작업하지 않았다.(직선)

 해당 코드로는 n개의 포인트를 기준으로 베지어 곡선이 처리가 가능하다.

실제 거리나 시간 등등이 고려되면 좀더 부드러운 커브곡선이 가능하다.

 

 ★★☆☆☆

 

반응형

댓글