es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo puedo cambiar el tamaño de un rectángulo.

Utilizo una función de Rabbid76. Con esta función puedo girar un rectángulo. El rectángulo adquiere el tamaño de una imagen. Quiero cambiar el tamaño del rectángulo para que sea más pequeño que la imagen.
Intenté cambiar topleft y topright, pero no funcionó.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para cambiar el tamaño del rectángulo y hacerlo más pequeño que la imagen, debes modificar los atributos de ancho y alto del objeto rectángulo. Puedes hacer esto creando un nuevo objeto rectángulo con el ancho y alto deseados y luego actualizando los puntos pivote correspondientes.

    Por ejemplo, puedes crear un nuevo rectángulo con la mitad del ancho y alto del rectángulo original y actualizar los puntos pivote correspondientes.

    new_width = orig_image.get_width() / 2
    new_height = orig_image.get_height() / 2
    rect = pygame.Rect(0, 0, new_width, new_height)
    rect.center = screen_center
    

    Luego puedes actualizar los puntos pivote en la función draw_rect_angle para usar las nuevas dimensiones del rectángulo.

    def draw_rect_angle(surf, rect, pivot, angle):   
        rect.topleft = (rect.topleft[0] +25 , rect.topleft[1])
        rect.topright = (rect.topright[0] -25, rect.topright[1])
        pts = [rect.topleft, rect.topright, rect.bottomright, rect.bottomleft]
        pts = [(pygame.math.Vector2(p) - pivot).rotate(-angle) + pivot for p in pts]
        pygame.draw.lines(surf, (255, 255, 0), True, pts, 3)
    

    Sin embargo, debes tener en cuenta que reducir el tamaño del rectángulo puede causar que algunas partes de la imagen se corten o se distorsionen debido a la rotación.

Comments are closed.