2010-04-08 138 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),而且通常可以将该工作转移到您的图形卡上,该图形卡将在专门为此类设计而设计的硬件上执行计算(即速度很快) 。