我想围绕图像中的某个点旋转图像。我正在使用魔法++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不能选择轴。
最佳答案
您需要创建一个仿射变换来映射旋转和过渡。示例...
Magick::Image img("rose:");
double
originX = 50,
originY = 75,
angle = 45.0,
radians = angle * atan2(1, 1)/45.0,
sx = cos( radians ),
rx = sin( radians ),
ry = -rx,
sy = sx,
tx = originX * sx - originY * rx,
ty = originX * rx + originY * sx;
Magick::DrawableAffine matrix(sx, rx, ry, sy, tx, ty);
img.virtualPixelMethod(Magick::TransparentVirtualPixelMethod);
img.affineTransform(matrix);
可以找到创建仿射矩阵的详细示例,包括共享和原点转换 Affine Matrix Transforms用法文档。包括指向 perl 的有用链接脚本。
关于c++ - 如何选择图像旋转轴,Magick++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188660/