2010-04-08 4 views
1

내 응용 프로그램에 CTM (Coordinate Transformation Matrix)을 쉽게 통합 할 수있는 C++ 라이브러리를 찾고 있습니다. PDF 또는 PostScript에서 CTM을 알 수 있습니다.좌표 변환 행렬 (CTM)을위한 C++ 라이브러리?

하나의 프로젝트에서 우리는 프레임 워크로 C++/Qt4를 사용합니다.이 클래스는 또는 .rotate(double degrees)과 같은 메소드를 제공하는 QTransform 클래스를 제공합니다.

몇 가지 변환을 수행하면 6 개의 CTM 값을 모두 얻을 수 있습니다.이 값을 PDF 라이브러리에 병합하거나 내보내기 파일의 변환 행렬을 사용할 수 있습니다. Qt의 API는 다각형 (QPolygon), 직사각형 (QRect) 및 기타 기본 데이터 구조를 변형 된 좌표계로 임의 맵핑 할 수도 있습니다.

기본적으로 나는 Qt가 제공하는 것과 비슷한 것을 찾고 있지만 Qt를 사용할 필요가 없습니다.

나 자신이 행렬 곱셈을 할 수 있다는 것을 알고 있지만, 누군가가 이미이 문제를 해결 했으므로 정말 그렇게 관심이 없습니다. 책이나 다른 가이드에 대한 링크를 제발 곱셈 행렬.

감사합니다.

답변

1

Qt를 사용하지 않는 이유는 무엇입니까? 그것은 당신이 원하는대로, 오픈 소스 (나는 생각합니다) 그리고 당신은 QTransform 클래스에 대해서만 링크 할 수 있어야합니다.

+0

예, 불행히도 QTransform 클래스는 QtCore에 포함되어 있지 않지만 대신 QtGui에 포함되어 있습니다. 이것은 오버 헤드가 될 것입니다. X11 등등에 대한 언급은 말할 것도 없습니다. 이렇게하면 해당 라이브러리의 단일 기능을 사용하기 위해 약 15MB의 추가 라이브러리가 추가됩니다. – BastiBen

+0

QTransform 클래스를 꺼내서 해당 클래스에 대한 .h 및 .cpp 파일을 만들고 자신의 클래스와 동일한 방식으로 포함시킬 수 있습니까 (원하지 않는 추가 멤버 함수를 제거하기 위해 클래스를 조정할 수 있습니까?). 또는 Qt 버전의 코드를 기반으로 자신의 변형 클래스를 롤백하십시오. – Amos

+0

그럴만 한 합리적인 방법처럼 들리지만 불행히도 Qt 라이센스 조항에 저를 묶을 것입니다. 이로 인해 동적으로 링크되어야하는 라이브러리에 코드가 삽입 될 수 있습니다. – BastiBen

0

OpenGL을 사용해 보셨습니까? 찾고있는 변환 유형 (최대 4x4 선형 변환)을 수행 할 수있을뿐만 아니라 일반적으로 그래픽 카드에 작업을로드 할 수 있습니다. 그래픽 카드는 이러한 작업을 위해 특별히 설계된 하드웨어에서 계산을 수행합니다 (즉, 빠릅니다) .