Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INSTITUTO TECNOLÓGICO
de Tuxtepec
ASIGNATURA:
Graficación
DOCENTE:
María Luisa Acosta Sanjuán
CARRERA:
Ingeniería en Sistemas
Computacionales
ACTIVIDAD:
Práctica 2. Ejercicios de la
unidad (Actividad integradora)
UNIDAD 4
Relleno, iluminación y
sombreado.
PRESENTA:
Martin Osorio Pascual
21350279
SEMESTRE:
5
GRUPO:
A
Clave de
Plan de Nombre de la
Carrera la Semestre Gpo. Periodo
estudios materia
materia
Ingeniería en SCC -
2009-
Sistemas 1010 Graficación. v A AGO-DIC-2023
2010
Computacionales
Duración
Practica No. Laboratorio de: Nombre de la práctica
(Hora)
4_2 SC1 Ejercicios de la unidad (Actividad integradora) 1
1. Enunciado.
De lo solicitado en clase, presentar todos los ejercicios mediante un formato de
práctica en processing aplicando polígono e imágenes.
NOTA: Actualizar formato
No. Práctica: 4_2
2. Introducción
Con la ayuda de la aplicación de Processing vamos a realizar los ejemplos de los programas que
fueron expuestos del tema 4 así como los ejercicios y ejemplos de las diapositivas
proporcionadas por el docente
3. Objetivo (Competencia)
Específica(s):
• Aplica técnicas y herramientas de iluminación y sombreado para obtener un
enriquecimiento visual en aplicaciones generales.
Genéricas:
• Capacidad de abstracción, análisis y síntesis.
• Capacidad de aplicar los conocimientos en la práctica.
• Conocimientos sobre el área de estudio y la profesión.
• Habilidades para buscar, procesar y analizar información procedente de
fuentes diversas.
• Capacidad crítica y autocrítica.
• Capacidad creativa.
• Habilidad para trabajar en forma autónoma.
Página 1 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
4. Fundamento
Relleno: En arte digital o dibujo, el relleno se refiere al proceso de completar o pintar
áreas de una ilustración con un color sólido, textura o patrón. Se puede utilizar una
herramienta de relleno para aplicar color de manera rápida y uniforme en un área
específica del dibujo.
Métodos de relleno de polígonos con color:
• Scan-line
• Inundación
• Linea de barrido
• Relleno mediante un patrón
Color degradado: Es la combinación de dos o más colores, de manera que uno de ellos
va perdiendo intensidad a medida que el otro que va ganándolo. Esto como resultado,
te da una transición cromática de colores, que tiene una vista impactante para el
espectador. Se puede decir que no hay saltos de color y una línea que separe a estos,
sino más bien se nota la transición entre ellos.
Usos:
• Mejora de la percepción tridimensional
• Destacar áreas específicas
• Claridad y legibilidad
• Representación de Superficies
Sombreado Interpolado:
Sombreado Gouraud: Calcula el color de cada píxel interpolando los colores de los
tres vértices más cercanos al píxel.
Página 3 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
5. Descripción (Procedimiento)
A) Equipo necesario Material de apoyo
• Diapositivas otorgadas
1. Laptop
2. Processing
B) Desarrollo de la práctica:
practica_1_Exposicion:
void setup() {
size(400, 400);}
void draw() {
background(255); // Fondo blanco
fill(150, 200, 100); // Color de relleno (en
este caso, verde claro)
stroke(0); // Color del borde (en este caso,
negro)
// Definir las coordenadas de los vértices
del polígono
int[] x = {50, 150, 250, 150};
int[] y = {150, 50, 150, 250};
// Dibujar y rellenar el polígono
beginShape();
for (int i = 0; i < x.length; i++) {
vertex(x[i], y[i]);
Página 4 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
}
endShape(CLOSE);
}
Como vemos se trata de un cuadrado hecho en vértices utilizando arrays de color verde
con un fondo blanco, con un de color de borde negro.
practica_2_Exposicion:
void setup() {
size(400, 200);
background(255); // Fondo blanco
// Color homogéneo
fill(255, 0, 0); // Color rojo
rect(50, 50, 100, 100); // Rectángulo con color
homogéneo
// Color degradado
noFill(); // Sin relleno
stroke(0); // Color de trazo negro
int startX = 200; // Posición x inicial
int endX = startX + 100; // Posición x final
int startY = 50; // Posición y inicial
int endY = startY + 100; // Posición y final
for (int x = startX; x <= endX; x++) { //Inicia un bucle for que recorre las posiciones
horizontales desde startX hasta endX.
float inter = map(x, startX, endX, 0, 1); // Interpolación entre 0 y 1
int c = lerpColor(color(255, 0, 0), color(0, 0, 255), inter); // Color degradado de rojo a azul
stroke(c); // Cambiar color de trazo
line(x, startY, x, endY); // Dibujar línea vertical para crear el degradado
}
}
En este programa podemos observar la ejemplificación del color homogeneo de color rojo
y la transición del color degradado de rojo, pasando por los tonos intermedios hasta llegar
al azul.
Página 5 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
beginShape();
texture(textura);
float lado = 300;
vertex(-lado / 2, -lado / 2, 0, 0, 0);
vertex(lado / 2, -lado / 2, 0, 1, 0);
vertex(lado / 2, lado / 2, 0, 1, 1);
vertex(-lado / 2, lado / 2, 0, 0, 1);
endShape(CLOSE);
}
Como vemos este crea una un cuadro con puros vértices a la cual tiene una textura de
madera, también nos damos cuenta que el cuadro tiene una rotación.
practica_4_Exposicion:
PImage texturaNaranja;
void setup() {
size(400, 400,P2D);
texturaNaranja = loadImage("naranja.jpg");
void setup() {
size(400, 400,P2D);
Página 6 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
void draw() {
background(255);
noStroke();
// Dibuja el círculo con la textura de la
naranja
beginShape();
texture(texturaNaranja);
for (float ang = 0; ang < TWO_PI; ang +=
0.1) {
float x = width / 2 + cos(ang) * 100;
float y = height / 2 + sin(ang) * 100;
float u = map(x, 0, width, 0, 1);
float v = map(y, 0, height, 0, 1);
vertex(x, y, u, v);
}
endShape(CLOSE);
}
Aquí observamos un programa en el que a una esfera se le pueda otorgar una textura
para simular ser una naranja.
practica_5_Exposicion:
PVector direcDeLaLuz;
void setup() {
size(800, 600, P3D);
direcDeLaLuz = new PVector(1, -1, 0); // Dirección de la luz
}
void draw() {
background(255);
translate(width / 2, height / 2, 0);
rotateX(frameCount * 0.01);
rotateY(frameCount * 0.01);
lights(); // Habilitar iluminación
drawEsfera();
Página 7 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
Página 8 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_6_Exposicion:
float angleX = 0;
float angleY = 0;
void setup() {
size(800, 800, P3D);
}
void draw() {
background(255);
lights();
angleX += 0.01;
angleY += 0.01;
}
Este programa crea una esfera con un iluminado a la cual cada que rota este
automáticamente se la iluminación se queda en el mismo lugar.
practica_7_Exposicion:
PVector lightDir;
void setup() {
size(800, 800, P3D);
lightDir = new PVector(1, -1, -1);
lightDir.normalize();
Página 9 de 4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
void draw() {
background(255);
lights();
fill(shadedColor);
pushMatrix();
translate(x, y, z);
sphere(5);
popMatrix();
}
}
}
Página 10 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_1_Diapositiva:
beginShape();
vertex(20, 20);
vertex(85, 30);
vertex(65, 75);
vertex(30, 55);
endShape(CLOSE);
Este programa crea una figura como un trapecio la cual está basada en vértices y que
una cierta parte de la figura se puede visualizar que esta más atrás de la otra
practica_2_Diapositiva:
Desarrollar un programa en Processing que permita dibujar polígonos de n lados.
• Para ello hay que implementar una función polygon con los siguientes parámetros:
✓ Centro (dos enteros),
✓ Radio (entero)
✓ Número de lados del polígono (entero)
Página 11 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
void polygon(int cantLad, float radio){ //función que define las caracterisitcas del polígono
float theta = 0.0; //Valor del ángulo
inicial
float x = 0.0; //origen del eje de las x
float y = 0.0; //origen de las y
practica_3_Diapositiva:
Código de la clase principal:
void setup() { //configuramos nuestra ventana:
size (800, 600); //El tamño de la ventana es de 800 X 600 px
Página 12 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
Este programa creo un polígono de 6 lados con un relleno de color verde permitiéndonos
identificar la funcionabilidad del color homogéneo.
practica_4_Diapositiva:
Código de la clase principal:
//Polígono sobre lienzo degradado
void setup() { //configuramos nuestra ventana:
size (800, 600); //El tamño de la ventana es de 800 X 600 px
Página 13 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
for(int i=0; i<cantLad; i++) { //Este ciclo dibujara la figura de acuerdo a la cantidad de
lados que se especifique
x=cos(theta)*radio; //Angulo sobre el eje de las x
y=sin(theta)*radio; //Angulo sobre el eje de las y
fill(#1B2FDE);
vertex(x,y); //Se crea el vértice
theta += TWO_PI/cantLad; //Se incrementa una circunferencia completa entre la
cantidad de lados
}
endShape (CLOSE); // Siempre se debe terminar la función forma
}
Página 14 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_5_Diapositiva:
Para poder realizar este programa utilizaremos la
siguiente imagen:
Página 15 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
Como vemos el programa consiste igual que el ejemplo anterior solo que este tiene
una rotacion en 3D siguiendo al cursor del mouse.
practica_7_Diapositiva:
size(300,300);
background(0);
smooth();
stroke(255, 60);
for (int i = 0; i < 300; i++) {
float r = random(10);
strokeWeight(r);
float offset = r * 5.0;
line(i-20, 300, i+offset, 0); }
Página 16 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
Página 17 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_9_Diapositiva:
void setup(){
size(800,600,P3D);
}
void draw() {
background(255);
fill(255); // Color del sombreado
noStroke();
translate(width/2,height/2,0);
// Habilitar iluminación
lights();
sphere(200);
}
Este programa crea una esfera en 3D a la cual tiene iluminación que resalta en el
centro de esta y alrededor da un aspecto de sombra.
Página 18 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_2_Exposicion
practica_3_Exposicion
Página 19 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_4_Exposicion
practica_5_Exposicion
Página 20 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_6_Exposicion
practica_7_Exposicion:
practica_1_Diapositiva
Página 21 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_3_Diapositiva
practica_4_Diapositiva
Página 22 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_6_Diapositiva
Página 23 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
practica_7_Diapositiva
practica_8_Diapositiva
practica_9_Diapositiva:
Página 24 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
7. Anexos
8. Referencias
• Processing el lenguaje para gráficos preferido por diseñadores. (2016, May 16).
Programarfacil.com. https://programarfacil.com/podcast/80-processing-lenguaje-para-
graficos/
• Weitzenfeld, A. (s. f.). ILUMINACIÓN Y SOMBREADO. cannes.itam. Recuperado 28
de noviembre de 2023, de
http://www.cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Sombreado.pdf
• Iluminación y Sombreado. (2023). fing.edu.uy
https://www.fing.edu.uy/inco/cursos/compgraf/Clases/2011/14Iluminacion%20y%20So
mbreado.pdf
• Math. (2020). Tema 4 - Relleno, Iluminación y sombreado [YouTube Video]. In
YouTube. https://www.youtube.com/watch?v=R3h-whRrGys
• Gouraud, Henri (1971). Computer Display of Curved Surfaces, Doctoral Thesis (Thesis).
University of Utah.
• B. T. Phong, Illumination for computer generated pictures, Communications of ACM 18
(1975), no. 6, 311–317.
Formuló Realizó
Página 25 de
4
INSTITUTO TECNOLOGICO DE TUXTEPEC
Departamento de Sistemas y Computación
Página 26 de
4