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
Freigeben: 2024-12-13 18:50:16
Original
649 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage