如何选择图像旋转轴,Magick++?
How do I choose the image rotation axis, Magick++?
我想围绕图像中的某个点旋转图像。我正在使用魔法++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不能选择轴。
您需要创建仿射变换来映射旋转和过渡。示例...
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 usages documents. Includes useful links to perl 脚本中找到创建仿射矩阵的详细示例,包括共享和原点转换。
我想围绕图像中的某个点旋转图像。我正在使用魔法++。如何选择旋转轴?有旋转功能,但它只允许我设置度数而不能选择轴。
您需要创建仿射变换来映射旋转和过渡。示例...
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 usages documents. Includes useful links to perl 脚本中找到创建仿射矩阵的详细示例,包括共享和原点转换。