2010-04-08 46 views
1

我正在尋找一個C++庫,它允許在我的應用程序中輕鬆集成座標轉換矩陣(CTM)。您可能從PDF或PostScript中瞭解CTM。座標轉換矩陣(CTM)的C++庫?

對於一個項目中,我們使用的是C++/Qt4的作爲一個框架,它提供了一個QTransform類,它提供了像.translate(double x, double y).rotate(double degrees)方法。

做一些轉換後,它可以讓我得到的所有6個CTM值,這點我可以養活成PDF庫或導出文件使用轉換矩陣。 Qt的API還允許將多邊形(QPolygon),矩形(QRect)和其他基本數據結構任意映射到轉換後的座標系中。

所以基本上我在尋找類似於Qt提供的東西,但無需使用Qt的。

我知道我可以自己做矩陣乘法,但我並不真的有興趣這樣做,因爲我非常肯定有人已經解決了這個問題,所以請不要鏈接到書籍或其他指南,以瞭解如何乘法矩陣。

謝謝!

回答

1

爲什麼不直接使用Qt?它做你想做的,是開源的(LGPL我認爲),你應該能夠鏈接到QTransform類。

+0

是的,不幸的是,QTransform類不是QtCore(我將罰款)的一部分,而是QtGui的一部分。這將花費大量的開銷,更不用說對X11的依賴,等等。 這將增加一些額外的庫15MB,以便使用該庫的單個功能。 – BastiBen 2010-04-08 13:19:17

+0

你能拿出QTransform類,使的.h和.cpp文件只是類,幷包括他們以同樣的方式,你會自己的類(也許掏空類刪除你不希望任何額外的成員函數)。或者基於來自Qt版本的代碼推出自己的變換類。 – Amos 2010-04-08 13:44:44

+0

這聽起來像是一種合理的方式,不幸的是,它會將我綁定到Qt許可條款 - 這會導致將該代碼放入必須動態鏈接的庫中。 – BastiBen 2010-04-13 13:49:46

0

你考慮的OpenGL?它不僅可以執行所需的轉換類型(線性轉換高達4x4),而且通常可以將該工作轉移到您的圖形卡上,該圖形卡將在專門爲此類設計而設計的硬件上執行計算(即速度很快) 。