2010-06-13 4 views
6

최근에 2D 폴리곤 작업을 처리 할 라이브러리 나 라이브러리 세트가 필요했습니다. 부울/클리핑 연산 (차이 및 합집합)과 삼각 측량을 수행 할 수 있어야합니다.다각형 작업 라이브러리

지금까지 발견 한 라이브러리는 poly2tri, CGALGPC입니다. Poly2tri는 삼각형 분할에 적합하지만 여전히 부울 연산으로 남았습니다. 성숙도에 대해서는 확실하지 않습니다.

내 프로젝트가 무료 인 경우에만 CGAL 및 GPC가 무료입니다. 내 특정 프로젝트는 상업적인 것이 아니므로 지불하거나 라이센스를 요청하는 것을 주저합니다. 그러나 나는 미래의 상용 프로젝트에 코드를 사용하기를 원할 수 있으므로 CGAL의 오픈 소스 라이센스와 GPC의 프리웨어 전용 제한에 대해 주저합니다. 훌륭한 BSD 스타일의 라이센스가있는 폴리곤 클리핑 라이브러리가없는 것 같습니다.

아, C/C++가 바람직하다.

답변

11

클리퍼는 (삼각 제외) 요구하는지 정확히 않습니다^(델파이와 C++로 작성)를 오픈 소스 프리웨어 다각형 클리핑 라이브러리 - http://sourceforge.net/projects/polyclipping/

내 테스트에서 Clipper는 GPC보다 훨씬 빠르고 오류가 적습니다 (자세한 비교는 여기 -참조).

Re : Aggregation Geometry (AGG) 그래픽 라이브러리 - 폴리곤 클리핑을하지 않고 단순히 GPC (상업용으로는 사용 가능하지 않음)를 사용합니다. 그러나 Clipper에는 AGG 단위로 GG만큼 쉽게 AGG를 클리핑 할 수 있습니다.

^편집 : Clipper는 이제 C# (타사에서 작성한 Perl, Ruby, Haskell 및 Flash 모듈과 함께)로도 작성되었습니다.

+0

흥미 롭습니다. 라이브러리를 사용하는 예제로 모든 프로젝트가 있습니까? 새로운 것이지만 불쾌감은 없지만 성숙함과 안정성은 내가 원하는 것입니다. – AJM

+1

그리고 아무런 행동도 취하지 않았습니다 :). 몇 주 전에 만 핵심 라이브러리 작성을 마쳤으므로 누구나 아직 완전히 평가하고 자신의 코드에 통합 할 시간이 없었습니다. –

+0

클리퍼는 정수로 제한합니다. 이유가 뭐야? 예를 들어, GPC는 그렇지 않습니다. – cape1232

0

http://www.antigrain.com/license/index.html이 가장 가까이 있습니다. 상용으로 전환하려면 돈을 써야 할 수도 있지만 나중에 무료로 사용할 수 있으며 나중에 동의 할 수 있습니다.

+0

고맙습니다. 그래도 기하학 라이브러리 만 찾고 있습니다. 안티 그레인은 전체 렌더링 라이브러리입니다. – AJM

2

부스트는 어떨까요? http://www.boost.org/doc/libs/1_47_0/libs/polygon/doc/index.htm

인터페이스에서 제네릭을 많이 사용하는 것이 좋으면이 방법이 귀하의 목적에 도움이 될 것으로 생각됩니다. 트라이앵글 레이션이 포함되어 있는지 확실하지 않지만 사용하지 않으면 사용 가능한 많은 삼각 측량 알고리즘 중 하나를 구현할 수 있습니다.

3

PolygonLib은 С ++로 작성되었으며 두 프로젝트에서 이미 사용 된 새로운 폴리곤 클리핑 라이브러리입니다. 이것은 수치 적으로 견고하며 double 좌표를 사용하며 다수의 정점이있는 다각형에 최적화되어 있습니다. GPC 및 PolyBoolean을 통한 성능 및 메모리 사용률에 대한 자세한 내용 및 비교는 http://www.ulybin.de/products/polygonlib.php?lang=en을 참조하십시오.

라이브러리의 제한된 평가판은 상업적인 목적으로 사용하지 않아도되며 (삼각형 분할을 제외하고) 필요한 작업을 지원합니다.

+0

흥미로운 대답 ...이 라이브러리에 참여하신 적이 있습니까? 아니요, 명시 해주세요;) – Stephan

+2

도서관의 발전을 주도하고 알고리즘, API 및 아키텍처를 개발했습니다. – AKU