如何解决围绕枢轴Python绘制旋转的图像
我正在尝试绘制必须在Python中绕其角旋转的图像。
我可以做一个(可以做)这项工作的脚本,但不要像我希望的那样绕枢轴点:
import matplotlib.pyplot as plt
import PIL
picture= PIL.Image.open('images/sample-image.png')
maxsize = (40*10,30*10)
picture = picture.resize(maxsize,PIL.Image.ANTIALIAS)
comp = picture.im.size[0]
larg = picture.im.size[1]
plt.figure(figsize=(10,5),dpi=300)
plt.xlim((-100,500))
plt.ylim((-100,500))
plt.imshow(picture.rotate(0,expand=True))
plt.imshow(picture.rotate(-15,expand=True))
plt.imshow(picture.rotate(-30,expand=True))
plt.imshow(picture.rotate(-45,expand=True))
plt.imshow(picture.rotate(-90,expand=True))
plt.show()
我得到的结果是:
我希望的结果是:
解决方法
您可以使用transform
关键字来定义围绕某个点的旋转:
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
import PIL
picture = PIL.Image.open('.../Downloads/puzzle.png')
maxsize = (50*10,50*10)
picture = picture.resize(maxsize,PIL.Image.ANTIALIAS)
plt.figure(figsize=(10,5),dpi=300)
plt.xlim((-600,600))
plt.ylim((-600,600))
plt.imshow(picture,transform=Affine2D().rotate_deg_around(*(0,0),0) + plt.gca().transData)
plt.imshow(picture,90) + plt.gca().transData)
plt.imshow(picture,180) + plt.gca().transData)
plt.imshow(picture,270) + plt.gca().transData)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。