LABORATORIO – Recorte y Relleno en OpenGL con Python
Curso: Computación Gráfica
Tema: Recorte de líneas (Cohen–Sutherland) y relleno de polígonos (Scan-Line)
Objetivos
1. Ejecutar y modificar un ejemplo de recorte de líneas con el algoritmo de Cohen–Sutherland
en Python + OpenGL.
2. Analizar casos no triviales de recorte.
3. Ejecutar y modificar un ejemplo de relleno de polígonos por Scan-Line.
1. Algoritmo de Cohen–Sutherland en Python
Archivo sugerido: cohen_s.py
Ejercicios propuestos
Ejercicio 1: Ejecuta cohen_opengl.py y verifica que ves el rectángulo de recorte en negro, las
líneas originales en gris y las versiones recortadas en rojo.
Ejercicio 2: Añade una función que genere segmentos aleatorios:
Agrégalo al programa anterior de forma que utilice esta función.
Ejercicio 3: Modifica el código para contar (en consola) cuántos de esos 100 segmentos son:
aceptados sin recorte, rechazados y recortados parcialmente (compara coordenadas de
entrada/salida).
Ejercicio 4: Convertir Cohen en una herramienta interactiva: el usuario “dibuja” segmentos con
el mouse y ve el recorte en tiempo real.
Para ello:
• Usar glutMouseFunc para:
o Primer clic izquierdo → guardar (x0, y0).
o Segundo clic izquierdo → guardar (x1, y1) y añadir el segmento a lines.
• En display():
o Dibujar el segmento original en gris.
o Dibujar el segmento recortado (si lo hay) en rojo usando cohen_sutherland_clip.
Permitir tecla c para limpiar todos los segmentos.
2. Algoritmo de relleno Scan-Line
Archivo sugerido: scan_line.py
Ejercicios propuestos
Ejercicio 5: Deben pasarle al algoritmo dos listas de vértices: un polígono exterior (grande) y
uno interior (pequeño).
El algoritmo debe renderizar el polígono exterior pero dejar un "hueco" vacío donde está el
interior.
Evaluacion
Actividad (Resuelve y Explica) Puntos
Ejercicio 1 4
Ejercicio 2 4
Ejercicio 3 4
Ejercicio 4 4
Ejercicio 5 4