1

正直なところ、これが機能しない理由はわかりません。回転すると、画像が絶えず拡大および縮小されます。私は周りを見回しましたが、私の問題の解決策を見つけられませんでした。メインhttp://tinypaste.com/1c5025fa モジュールhttp://tinypaste.com/f42f9c58

また、このプログラムのボックスが突然回転を停止する理由を誰かが説明できますか?その他'http://tinypaste.com/82b3b30e'(引用符を削除してください。2つ以上のハイパーリンクを投稿することはできません)

4

1 に答える 1

1

私の知る限り、あなたが見ているスケーリングは、回転操作がどのように機能するかの一種のアーティファクトです。長方形が回転すると、バウンディングボックスは必然的に元の長方形よりも大きくなります。たとえば、下の画像の青い長方形を参照してください。Rは長方形の半径です...したがって、回転すると、長方形は2番目の画像の赤い円で覆われた領域を一掃します。回転の境界ボックスは、灰色の長方形になりました。pygameは、赤い領域と灰色の領域の両方を埋める必要があります。pygameはパディング領域を塗りつぶすためにどの色を使用しますか?

pygame.transform.rotateのドキュメントによると...

「90度ずつ回転しない限り、画像は新しいサイズを保持するために大きくパディングされます。画像にピクセルアルファがある場合、パディングされた領域は透明になります。それ以外の場合、pygameはSurfaceカラーキーまたは左上のピクセル値に一致する色を選択します。」

したがって、解決策は、画像のカラーキーまたはアルファ値を明示的に設定することです(この場合、saved_imageサーフェスを作成するとき)。次に、saved_imageを回転すると、新しく作成された画像のパディング領域が適切な色。

試してみて、それが機能するかどうかを確認してください。

ここに画像の説明を入力してください

于 2012-05-25T05:21:09.023 に答える