Heim >Backend-Entwicklung >Python-Tutorial >Wie drehe ich mit Pygame ein Bild um seine Mitte?

Wie drehe ich mit Pygame ein Bild um seine Mitte?

Susan Sarandon
Susan SarandonOriginal
2024-12-13 18:50:16625Durchsuche

How to Rotate an Image Around Its Center Using Pygame?

Wie drehe ich ein Bild mit Pygame um seine Mitte?

Kurze Antwort:

Um ein Bild mit Pygame zu drehen und dabei seine Mitte und Größe beizubehalten, passen Sie die Rechteckabmessungen entsprechend an. Holen Sie sich das ursprüngliche Bildrechteck und erstellen Sie mit pygame.transform.rotate() ein gedrehtes Bild. Kopieren Sie einen Teil des gedrehten Bildes, der am ursprünglichen Rechteck ausgerichtet ist, und verwenden Sie ihn als Ausgabe.

Detaillierte Antwort:

Beim Drehen eines Bildes mit pygame.transform. rotation() erhöht die Größe des resultierenden Bildes. Um die Originalgröße beizubehalten, muss das gedrehte Bild an derselben Stelle wie das Originalbild platziert werden.

Hier ist ein aktualisierter Codeblock, der die Ausnahme behebt:

def rot_center(image, angle, x, y):
    """Rotate an image while keeping its center and size"""
    rotated_image = pygame.transform.rotate(image, angle)
    new_rect = rotated_image.get_rect(center=image.get_rect(center=(x, y)).center)

    return rotated_image, new_rect

Diese Funktion gibt zurück das gedrehte Bild und das umschließende Rechteck des gedrehten Bildes.

Alternativ können Sie die Funktion blitRotateCenter() zum Drehen und Blitten des Bildes verwenden Bild:

def blitRotateCenter(surf, image, topleft, angle):
    rotated_image = pygame.transform.rotate(image, angle)
    new_rect = rotated_image.get_rect(center=image.get_rect(topleft=topleft).center)
    surf.blit(rotated_image, new_rect)

Das obige ist der detaillierte Inhalt vonWie drehe ich mit Pygame ein Bild um seine Mitte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn