Python Pygame旋转会导致图像结巴
我真的不知道为什么这不起作用。旋转会使图像不断上下缩放。我环顾四周,还没有找到解决问题的办法。 主要 模块 还有人能解释为什么这个程序的盒子突然停止旋转吗?Python Pygame旋转会导致图像结巴,python,pygame,Python,Pygame,我真的不知道为什么这不起作用。旋转会使图像不断上下缩放。我环顾四周,还没有找到解决问题的办法。 主要 模块 还有人能解释为什么这个程序的盒子突然停止旋转吗? 等http://tinypaste.com/82b3b30e“(删除引号,我不允许发布超过2个超链接)从我可以看出,你看到的缩放是旋转操作如何工作的一种人工制品。旋转矩形时,边界框必然大于原始矩形。例如,请参见下图中的蓝色矩形。R是矩形的半径…所以当它旋转时,矩形会扫掉第二幅图中红色圆圈覆盖的区域。旋转的边界框现在是灰色矩形。pygame必
等http://tinypaste.com/82b3b30e“(删除引号,我不允许发布超过2个超链接)从我可以看出,你看到的缩放是旋转操作如何工作的一种人工制品。旋转矩形时,边界框必然大于原始矩形。例如,请参见下图中的蓝色矩形。R是矩形的半径…所以当它旋转时,矩形会扫掉第二幅图中红色圆圈覆盖的区域。旋转的边界框现在是灰色矩形。pygame必须同时填充红色区域和灰色区域。pygame使用什么颜色填充填充区域 医生说 除非以90度增量旋转,否则图像将被填充得更大以保持新的大小。如果图像有像素Alpha,填充区域将是透明的。否则pygame将选择与曲面颜色键或左上角像素值匹配的颜色 因此,解决方案是显式设置图像的颜色键或alpha值(在您的情况下,在构建保存的_图像曲面时)。然后,当旋转保存的_图像时,新生成的图像将使用适当的颜色填充填充区域 试一试,看看效果如何
据我所知,您看到的缩放是旋转操作工作原理的一种伪影。旋转矩形时,边界框必然大于原始矩形。例如,请参见下图中的蓝色矩形。R是矩形的半径…所以当它旋转时,矩形会扫掉第二幅图中红色圆圈覆盖的区域。旋转的边界框现在是灰色矩形。pygame必须同时填充红色区域和灰色区域。pygame使用什么颜色填充填充区域 医生说 除非以90度增量旋转,否则图像将被填充得更大以保持新的大小。如果图像有像素Alpha,填充区域将是透明的。否则pygame将选择与曲面颜色键或左上角像素值匹配的颜色 因此,解决方案是显式设置图像的颜色键或alpha值(在您的情况下,在构建保存的_图像曲面时)。然后,当旋转保存的_图像时,新生成的图像将使用适当的颜色填充填充区域 试一试,看看效果如何
在更新过程中,我会不断地将角度增加10,因此最终会超过360。您希望这个角度旋转(方框,angle angle/360*360)会发生什么。所以角度/360*360减去不必要的角度。因此,它只会旋转最小的数量。您使用的是什么版本的Python?角度代码仅适用于版本2(没有来自uuu future uuuuu import division的
)。在Python 3中,angle/360通常是一个浮点,最终会抵消整个角度,而不仅仅是360的倍数。如果对角度只使用整数,为什么不使用模运算呢?这也有一个好处,就是不会自动陷入长期(或因溢流而受苦)。i、 e.角度=角度%360好的,谢谢,从现在开始我将使用模数。在更新中,我会不断地将角度增加10,因此最终它将超过360。你希望这个角度旋转(框,角度/360*360)会发生什么。所以角度/360*360减去不必要的角度。因此,它只会旋转最小的数量。您使用的是什么版本的Python?角度代码仅适用于版本2(没有来自uuu future uuuuu import division的)。在Python 3中,angle/360通常是一个浮点,最终会抵消整个角度,而不仅仅是360的倍数。如果对角度只使用整数,为什么不使用模运算呢?这也有一个好处,就是不会自动陷入长期(或因溢流而受苦)。i、 e.angle=angle%360好的,谢谢,从现在起我将使用模数。哦,所以我所要做的就是选择一种不同于表面的颜色,pygame将处理其余的:o。所以self.saved_image.set_colorkey((255255))。谢谢你的帮助。哦,所以我所要做的就是选择一种不同于表面的颜色,pygame会处理剩下的:o。所以self.saved_image.set_colorkey((255255))。谢谢你的帮助。