글목록

2022년 7월 2일

곡선형 도형 변환 - 4. 3점 위치로부터 중간점의 제어점(Control Point) 구하기

CASE 1. 앞, 뒤 knot을 잇는 선분과 나란하게 (Powerpoint 기본값)



K2의 앞, 뒤에 control point를 생성하기 위해서, 바로 앞과 뒤의 knot 위치로부터 나란한 벡터 V_tan를 구하고, 이 벡터 길이의 1/6에 해당하는 벡터를 K2 위치에 빼주거나, 합쳐주면 control point가 됩니다.

Powerpoint 자유형 곡선을 생성할 때, 마우스로 여러 개의 점을 클릭해서 찍어주면 자동으로 생성해주는 control point와 같습니다. 점 편집 메뉴에서 임의로 수정했다가 원래 상태로 되돌릴 때 사용할 수 있습니다.


CASE 2. 앞, 뒤 knot을 잇는 선분과 나란하면서 원형이 되도록 control point 생성하기


4점을 이용한 Bezier 곡선으로 완벽한 원을 그리는 것은 불가능합니다. 그러나, 원에 최대한 근접한 곡선을 생성할 수는 있습니다. Knot이 되는 점 P1, P2, P3이 원의 일부분인 호를 생성한다고 가정할 때, control point인 C1과 P2 사이의 길이 Lc는 위의 그림과 같이 삼각함수로 주어지게 됩니다. P1, P2, P3의 관계로부터 θ값과 곡률반경 R을 구한 후, 위의 함수에 입력해주면 Lc를 구할 수 있습니다.


CASE 3. 앞, 뒤 knot을 연결한 선이 중간점에서 반사되는 형태의 control point


문장으로 쓰는 것보다는 그림으로 이해하시면 쉬울 듯 합니다. Control point와 knot을 연결한 선이 앞, 뒤 knot을 연결한 선의 반사면이 되도록 Control point의 위치를 설정하는 방법입니다. Control의 길이는 앞, 뒤 knot과 연결한 선의 1/6이 되도록하는 기본값과 원형이 되도록 길이를 조정하는 방법이 있습니다.


Control point의 위치를 계산하는 함수는 이전글에서 소개드렸던 벡터 계산 함수들을 조합하여 구할 수 있습니다. 또한 여기에서 소개드린 방법 이외에도 여러 점들을 부드러운 곡선으로 연결하는 다양한 경로를 생각할 수 있습니다. 따라서, 개인적으로 생각하기에 좀더 부드러운 곡선을 생성할 방법을 고안한다면 다양한 곡선 형태를 얻을 수 있을 것입니다.

댓글 없음:

댓글 쓰기

의견이나 질문이 있으신 분은 언제든지 댓글을 달아주세요~

많이 본 글 :