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

Comment faire pivoter une image autour de son centre dans Pygame ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 07:35:10401parcourir

How to Rotate an Image Around Its Center in Pygame?

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

Vous pouvez faire pivoter une image autour de son centre à l'aide de pygame.transform.rotate () fonction. Cependant, l'image pivotée sera plus grande que l'image originale et le centre de l'image pivotée ne sera pas le même que le centre de l'image originale.

Pour résoudre ce problème, vous devez calculer le décalage entre le centre de l’image originale et le centre de l’image pivotée. Vous pouvez ensuite utiliser ce décalage pour déplacer l'image pivotée afin que son centre soit dans la même position que le centre de l'image d'origine.

Voici un exemple de code qui montre comment faire pivoter une image autour de son centre :

def rotate_image(image, angle):
  """Rotates an image around its center.

  Args:
    image: The image to be rotated.
    angle: The angle of rotation in degrees.

  Returns:
    The rotated image.
  """

  # Calculate the offset between the center of the original image and the center of the rotated image.
  offset = (image.get_width() / 2, image.get_height() / 2)

  # Rotate the image around its center.
  rotated_image = pygame.transform.rotate(image, angle)

  # Move the rotated image so that its center is in the same position as the center of the original image.
  rotated_image = rotated_image.subsurface(pygame.Rect(-offset, -offset, image.get_width(), image.get_height()))

  # Return the rotated image.
  return rotated_image

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!

Déclaration:
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