



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
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
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
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.