Я ищу библиотеку C++, которая позволяет легко интегрировать матрицы преобразования координат (CTM) в мое приложение. Вы можете узнать CTM из PDF или PostScript.Библиотека C++ для матриц преобразования координат (CTM)?
Для одного проекта мы используем C++/Qt4 в качестве рамки, которая предлагает класс QTransform
, который предоставляет такие методы, как .translate(double x, double y)
или .rotate(double degrees)
.
После выполнения некоторых преобразований это позволило мне получить все 6 значений CTM, которые я мог бы использовать в библиотеке PDF или использовать матрицу преобразования в файлах экспорта. API Qt также позволяет произвольно отображать полигоны (QPolygon
), прямоугольники (QRect
) и другие примитивные структуры данных в преобразованные системы координат.
Итак, в основном я ищу что-то похожее на то, что Qt предоставляет, но без необходимости использования Qt.
Я знаю, что сам мог бы выполнять матричные умножения, но мне это не очень интересно, так как я очень уверен, что кто-то уже решил эту проблему, поэтому, пожалуйста, не связывайтесь с книгами или другими руководствами о том, как умножить матрицы.
Спасибо!
Да, к сожалению, класс QTransform не является частью QtCore (с которым мне все будет в порядке), но вместо этого часть QtGui. Это будет тонна накладных расходов, не говоря уже о зависимостях от X11 и т. Д. Это добавит около 15 МБ дополнительных библиотек, чтобы использовать только одну функцию этой библиотеки. – BastiBen
Вы можете взять класс QTransform, сделать файлы .h и .cpp только для этого класса и включить их так же, как и ваши собственные классы (возможно, вывести класс из класса, чтобы удалить любые дополнительные функции-члены, которые вы не хотите). Или сверните свой собственный класс преобразования, основанный на коде из версии Qt. – Amos
Звучит как разумный способ сделать это, к сожалению, это привяжет меня к условиям лицензирования Qt - что приведет к тому, что этот код будет в библиотеку, которая должна быть динамически связана. – BastiBen