Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

TECNM - Iluminación de Polígonos en Python, Guías, Proyectos, Investigaciones de Computación Gráfica y Animación

Práctica de laboratorio donde se realiza un proyecto en Python utilizando la librería Pillow para el procesamiento de imágenes, logrando dibujar un polígono en un canva y rellenando el mismo mediante líneas con colores rgb.

Tipo: Guías, Proyectos, Investigaciones

2022/2023

A la venta desde 16/06/2024

mayra-mendez-17
mayra-mendez-17 🇲🇽

26 documentos

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Ensenada
Graficación
Nombre: Mayra Dayana Méndez Robles.
No. Control: 21760616.
Profesor: Eddie Helbert Clemente Torres.
Tema: Iluminar Polígonos.
Fecha: 15 de septiembre de 2023
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga TECNM - Iluminación de Polígonos en Python y más Guías, Proyectos, Investigaciones en PDF de Computación Gráfica y Animación solo en Docsity!

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico de Ensenada

Graficación

Nombre: Mayra Dayana Méndez Robles.

No. Control: 21760616.

Profesor: Eddie Helbert Clemente Torres.

Tema: Iluminar Polígonos.

Fecha: 15 de septiembre de 2023

Introducción La iluminación digital de polígonos se construye sobre los conocimientos previos que son esenciales para el desarrollo de este documento. En esta práctica, nos enfocamos en describir un algoritmo específico destinado a lograr la iluminación de polígonos. Este algoritmo se basa en el uso de conjuntos de líneas conectadas que se definen mediante una serie de coordenadas. El código que realizaremos en esta práctica se fundamenta en la idea de dividir el polígono en sus bordes, los cuales se representan mediante líneas. Cada una de estas líneas se somete a un análisis para determinar cómo interactúa con la luz y, por lo tanto, cómo influye en la coloración del polígono que la rodea. Este proceso se repite para cada línea que compone el polígono, y los resultados se combinan para configurar la apariencia final del polígono cuando está iluminado. Desarrollo Continuamos el proceso de desarrollo de código dentro del entorno de programación que hemos utilizado a lo largo de prácticas anteriores, como se ha mencionado anteriormente, que en este caso es Visual Studio Code. Dentro de este entorno, realizamos la importación de la biblioteca Pillow, la cual renombraremos como PIL para simplificar su uso en Python. Esta biblioteca es fundamental para la manipulación de imágenes y nos permitirá trabajar con las imágenes que generaremos a través de nuestro código de manera efectiva. En esta misma sección, también importamos las bibliotecas math, que son parte integral de Python y contienen funciones matemáticas esenciales para realizar cálculos dentro de nuestro código. Adicionalmente, agrupamos una parte de nuestro código previo en un solo script. Esta práctica tiene como objetivo permitirnos importar las funciones necesarias para mantener la continuidad del desarrollo de la práctica actual, lo que facilita la gestión y reutilización de código en nuestro proyecto en curso. Figura 1. Importación de librerías.

para determinar si la coordenada y de un punto está dentro del rango vertical definido por los puntos P0 y P1. Si esta condición se cumple (es decir, si la coordenada y del punto se encuentra entre las coordenadas y de P0 y P1), se procede a calcular la coordenada x correspondiente utilizando un método de interpolación lineal. El resultado de este cálculo se almacena en el array "intersecciones" para su uso posterior. Una vez que se han calculado todas las intersecciones, se aplica el método "sort" fuera de las iteraciones. Este método se utiliza para ordenar las intersecciones por coordenada x, lo que permite organizarlas adecuadamente. Finalmente, se inicia un último ciclo en el que se rellenan los píxeles entre las intersecciones de manera horizontal. Esto se logra mediante la identificación de las intersecciones que delimitan cada área a colorear y, en el segundo ciclo interno, se utiliza la función "drawPoint" para dar color al área designada. Figura 3. Función drawFilledPolygon. Luego de realizar el procesamiento de las intersecciones y la iluminación del polígono, procedemos a configurar el lienzo en este bloque de código. Aquí, se establece el ancho y el alto del lienzo, lo que determina las dimensiones de la imagen resultante. También, se crea una nueva imagen en blanco, denominada " canvas ," que tiene el tamaño especificado y un fondo blanco. Además de configurar las dimensiones y el fondo blanco, se establecen las coordenadas de los vértices del polígono en este bloque.

Figura 4. Declaración del lienzo (imagen) y polígono. Continuando con las declaraciones, se define el color con el cual se iluminará la figura, y esto se hace en base al modelo de color RGB (Rojo, Verde, Azul). Este color se utilizará para pintar o iluminar el polígono en el lienzo, dando la apariencia deseada a la figura dentro de la imagen final. Finalmente se invocan las funciones y se obtiene como resultado la imagen con nuestra figura dibujada. Figura 6. Muestra de la imagen. Figura 7. Resultado del código iluminarPoligonos.