post

Geométrica bidimensional

geometricas 2d a man in a suit standing in front of a clock
Photo by HANUMAN PHOTO STUDIO🏕️📸 on Pexels.com

Las transformaciones Geométricas Bidimensional, se implementan utilizando algoritmos específicos y se aplican a cada vértice del objeto que se está transformando. Estas transformaciones son la base para la construcción de escenas y representaciones visuales en aplicaciones que involucran gráficos y diseño. A continuación se muestra un ejemplo.

Requerimientos del ejemplo

pip install pygame

Código

import pygame
import sys
import math

pygame.init()

# Configuración de la ventana
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("Transformaciones Bidimensionales")

# Color
white = (255, 255, 255)


# Punto original
original_point = (100, 100)

# Función para dibujar el objeto original
def draw_original():
    pygame.draw.circle(screen, white, original_point, 20)

# Función para realizar la traslación
def translate(delta_x, delta_y):
    return original_point[0] + delta_x, original_point[1] + delta_y

# Función para realizar la rotación
def rotate(angle_degrees):
    angle_radians = math.radians(angle_degrees)
    x = original_point[0]
    y = original_point[1]
    x_prime = x * math.cos(angle_radians) - y * math.sin(angle_radians)
    y_prime = x * math.sin(angle_radians) + y * math.cos(angle_radians)
    return round(x_prime), round(y_prime)

# Función para realizar la escala
def scale(s_x, s_y):
    x = original_point[0]
    y = original_point[1]
    x_prime = x * s_x
    y_prime = y * s_y
    return round(x_prime), round(y_prime)

# Bucle principal
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Borra la pantalla
    screen.fill((0, 0, 0))

    # Dibujar objeto original
    draw_original()

    # Traslación
    translated_point = translate(100, 50)
    pygame.draw.circle(screen, white, translated_point, 20)

    # Rotación
    rotated_point = rotate(45)
    pygame.draw.circle(screen, white, rotated_point, 20)

    # Escala
    scaled_point = scale(2, 1)
    pygame.draw.circle(screen, white, scaled_point, 20)

    # Actualiza la pantalla
    pygame.display.flip()

Explicación

Importación de bibliotecas:

  • pygame: Biblioteca para crear videojuegos y aplicaciones multimedia.
  • sys: Proporciona acceso a algunas variables utilizadas o mantenidas por el intérprete y funciones que interactúan fuertemente con el intérprete.
  • math: Proporciona funciones matemáticas.

Inicialización de Pygame:

  • pygame.init(): Inicializa todos los módulos de pygame. Necesario antes de usar cualquier funcionalidad de Pygame.

Configuración de la ventana:

  • Se configura una ventana con un tamaño de 800×600 píxeles y se establece el título.

Definición de colores y punto original:

  • white: Color blanco definido como (255, 255, 255).
  • original_point: Coordenadas del punto original.

Funciones de transformación:

  • draw_original(): Dibuja el objeto original en el punto original.
  • translate(delta_x, delta_y): Realiza una traslación del punto original según los valores de desplazamiento especificados.
  • rotate(angle_degrees): Realiza una rotación del punto original según el ángulo especificado en grados.
  • scale(s_x, s_y): Realiza una escala del punto original según los factores de escala especificados.

Bucle principal:

  • Se crea un bucle principal que maneja eventos (por ejemplo, cerrar la ventana) y realiza las transformaciones en el objeto original, dibujándolo en la ventana.

Este código muestra cómo realizar las operaciones de transformación geométricas bidimensionales ( traslación, rotación y escala) en un objeto gráfico bidimensional utilizando Pygame.

Leave a Reply

Your email address will not be published. Required fields are marked *