Geométrica bidimensional
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.