Maison > développement back-end > Tutoriel Python > Comment faire pivoter une image autour de son centre à l'aide de Pygame ?

Comment faire pivoter une image autour de son centre à l'aide de Pygame ?

Susan Sarandon
Libérer: 2024-12-13 18:50:16
original
649 Les gens l'ont consulté

How to Rotate an Image Around Its Center Using Pygame?

Comment faire pivoter une image autour de son centre à l'aide de Pygame ?

Réponse courte :

Pour faire pivoter une image tout en préservant son centre et sa taille à l'aide de Pygame, ajustez les dimensions du rectangle de manière appropriée. Obtenez le rectangle de l'image d'origine et créez une image pivotée à l'aide de pygame.transform.rotate(). Copiez une partie de l'image pivotée qui s'aligne sur le rectangle d'origine et utilisez-la comme sortie.

Réponse détaillée :

Lors de la rotation d'une image à l'aide de pygame.transform. rotate(), la taille de l'image résultante augmente. Pour conserver la taille d'origine, il est nécessaire de placer l'image pivotée au même emplacement que l'image d'origine.

Voici un bloc de code mis à jour qui corrige l'exception :

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
Copier après la connexion

Cette fonction renvoie l'image pivotée et le rectangle englobant de l'image pivotée.

Alternativement, vous pouvez utiliser la fonction blitRotateCenter() pour faire pivoter et bliter l'image pivotée. image :

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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal