차회 갱신은 비동기 TCP 통신이 될것같다고 예고해놓고는, 비동기 통신이 아닌 보간곡선때문에 버전업을 하게되었네요.
최근 완료된 업무에서 필요해서 모듈을 만들어뒀던게 급 생각나서 추가하게 되었습니다.
이번 업데이트에 추가된 내용은 보간 곡선 생성 기능입니다.
제가 사용하는 보간 곡선은 경우에 따라 두가지를 용도에 맞게 적용하는데,
베지어 곡선과 캣멀롬 곡선이 그 두가지입니다.
베지어 곡선은 다음 그림과 같은 방식으로 그려지며, 부드러운 곡선을 만드는데 유용합니다.
< 베지어 4점 곡선 >
하지만 베지어 곡선은 지정한 웨이포인트를 지나지 않으며 최대한 부드럽게 유사 경로로 지나가게 되지요.
캣멀롬 곡선은 베지어 곡선보다 부드러운 곡이 나오진 않지만, 베지어 곡선과의 가장 큰 차이점으로 지정한 웨이포인트를 반드시 지나도록 구성됩니다. 다음 그림과 같이요.
< 캣멀롬 5점 곡선 >
위 두 보간곡선의 기능을 기존 레퍼런스에 추가하였습니다.
추가된 기능을 포함하여 제 개인 레퍼런스 클래스의 기능을 종합해보면 다음 표와 같습니다.
TCP/IP |
서버 |
클라이언트 |
|
UDP |
UDP |
수학함수 |
Euclidean distance 2D |
Euclidean distance 3D |
|
가우시안 랜덤수 생성 |
|
좌표계 |
위경도 방위각 계산 |
위경도 거리 계산 |
|
ECEF-위경도 좌표계 변환 |
|
시간경과 |
시간경과 체크 |
공유메모리 |
쓰기 |
읽기 |
|
보간곡선 |
베지어 곡선 |
캣멀롬 곡선 |
레퍼런스 클래스 DLL을 적용한 샘플 윈도우 어플리케이션의 구성중 보간곡선 부분의 GUI만 추가로 설명합니다.
다른 기능의 GUI는 이전글(http://cloudtree.tistory.com/294)을 참고해 주시면 감사하겠습니다.
그리기 영역에 임의의 점을 2개 이상 찍어줍니다.
웨이포인트로써 곡선 생성의 기준이 됩니다.
베지어 곡선을 생성한 모습입니다.
웨이포인트를 최대한 부드럽게 접근하는 곡선이 생성됩니다.
캣멀롬 곡선을 생성한 모습입니다.
지정된 웨이포인트를 반드시 지나치는 최적 경로가 생성됩니다.
이전 글에서의 언급과 마찬가지로 최대한 쉽게 적용할 수 있도록 짜려 노력했으며, C#에 어느정도 익숙하신 분이라면 DLL 적용을 위한 샘플 폼 어플리케이션의 코드만 보셔도 큰 어려움 없이 적용이 가능하시리라 생각합니다.
CloudtreeReference_sample_v1.0.1.zip
소스코드의 편집 및 재배포는 자유롭게 허용되며, 혹시나 레퍼런스 샘플에 치명적 오류가 있을 시 알려주시면 빠르게 수정 반영하도록 하겠습니다.