C++;坐标变换矩阵库(CTM)? 我正在寻找一个C++库,它可以方便地在我的应用程序中集成坐标转换矩阵(CTM)。您可能从PDF或PostScript中了解CTM

C++;坐标变换矩阵库(CTM)? 我正在寻找一个C++库,它可以方便地在我的应用程序中集成坐标转换矩阵(CTM)。您可能从PDF或PostScript中了解CTM,c++,coordinates,postscript,C++,Coordinates,Postscript,对于一个项目,我们使用C++/Qt4作为框架,它提供了一个QTTransform类,该类提供了.translate(双x,双y)或旋转(双度)等方法 在完成一些转换后,它将允许我获得所有6个CTM值,我可以将这些值输入PDF库或在导出文件中使用转换矩阵。Qt的API还允许将多边形(QPolygon)、矩形(QRect)和其他原始数据结构任意映射到变换后的坐标系中 因此,基本上我正在寻找类似于Qt提供的东西,但不需要使用Qt 我知道我可以自己做矩阵乘法,但我对这样做并不感兴趣,因为我非常确定有人已

对于一个项目,我们使用C++/Qt4作为框架,它提供了一个
QTTransform
类,该类提供了
.translate(双x,双y)
旋转(双度)
等方法

在完成一些转换后,它将允许我获得所有6个CTM值,我可以将这些值输入PDF库或在导出文件中使用转换矩阵。Qt的API还允许将多边形(
QPolygon
)、矩形(
QRect
)和其他原始数据结构任意映射到变换后的坐标系中

因此,基本上我正在寻找类似于Qt提供的东西,但不需要使用Qt

我知道我可以自己做矩阵乘法,但我对这样做并不感兴趣,因为我非常确定有人已经解决了这个问题,所以请不要链接到关于如何乘法矩阵的书籍或其他指南


谢谢

为什么不直接使用Qt呢?它实现了您想要的功能,是开源的(我认为是LGPL),您应该能够针对QTransform类进行链接

为什么不直接使用Qt呢?它实现了您想要的功能,是开源的(我认为是LGPL),您应该能够针对QTransform类进行链接

您考虑过OpenGL吗?它不仅可以完成您想要的变换类型(线性变换高达4x4),而且通常可以将这些工作转移到图形卡上,图形卡将在专门为这些事情设计的硬件上执行计算(即,它很快)。

您考虑过OpenGL吗?它不仅可以完成您想要的变换类型(线性变换高达4x4),而且通常可以将这些工作转移到图形卡上,图形卡将在专门为此类事情设计的硬件上执行计算(即,它很快)。

是的,不幸的是,QTTransform类不是QtCore的一部分(我可以接受),而是QtGui的一部分。这将是一个巨大的开销,更不用说对X11等的依赖了。这将增加大约15 MB的附加库,仅用于使用该库的一个功能。您是否可以取出QTTransform类,为该类生成.h和.cpp文件,并以与您自己的类相同的方式包含它们(可能会对类进行扩孔,以删除不需要的任何额外成员函数)。或者根据Qt版本的代码滚动您自己的transform类。听起来这是一种合理的方法,不幸的是,这会使我受到Qt许可条款的约束——这会导致将代码放入必须动态链接的库中。是的,不幸的是,QTTransform类不是QtCore的一部分(我可以接受),而是QtGui的一部分。这将是一个巨大的开销,更不用说对X11等的依赖了。这将增加大约15 MB的附加库,仅用于使用该库的一个功能。您是否可以取出QTTransform类,为该类生成.h和.cpp文件,并以与您自己的类相同的方式包含它们(可能会扩容该类以删除任何您不想要的额外成员函数)。或者围绕Qt版本的代码滚动您自己的transform类。听起来这是一种合理的方法,不幸的是,这将使我受制于Qt许可条款——这将导致将代码放入必须动态链接的库中。