我想围绕图像中的某个点旋转图像。我正在使用魔术++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不选择轴。
1 回答
2
您需要创建仿射变换来映射旋转和过渡。例子...
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脚本的有用链接。
于 2015-08-24T20:35:40.527 回答