1

老实说,我不知道为什么这不起作用。旋转导致图像不断放大和缩小。我环顾四周,并没有找到解决我问题的方法。主http://tinypaste.com/1c5025fa 模块http://tinypaste.com/f42f9c58

也有人可以解释为什么这个程序的盒子突然停止旋转?等'http://tinypaste.com/82b3b30e'(去掉引号,我不允许发布超过2个超链接)

4

1 回答 1

1

据我所知,您看到的缩放是旋转操作如何工作的一种人工制品。当一个矩形被旋转时,边界框必然会比原来的矩形大。例如,请参见下图中的蓝色矩形。R 是矩形的半径......所以当它旋转时,矩形扫过第二张图像中红色圆圈所覆盖的区域。旋转的边界框现在是灰色矩形。pygame 必须同时填充红色区域和灰色区域。pygame用什么颜色填充填充区域?

pygame.transform.rotate文档说...

“除非旋转 90 度增量,否则图像将被填充更大以保持新大小。如果图像具有像素 alpha,则填充区域将是透明的。否则 pygame 将选择与表面颜色键或左上角像素值匹配的颜色。”

因此,解决方案是显式设置图像的颜色键或 alpha 值(在您的情况下,当您构建 saved_image 表面时。)然后,当 save_image 旋转时,新生成的图像将填充填充区域合适的颜色。

试一试,看看是否可行。

在此处输入图像描述

于 2012-05-25T05:21:09.023 回答