Guía docente de Fundamentos de Geometría y Geometría Computacional (M52/56/3/31)
Curso
2022/2023
Fecha de aprobación por la Comisión Académica
15/07/2022
Máster
Máster Universitario en Desarrollo del Software
Módulo
Módulo 5: Modelado
Rama
Ingeniería y Arquitectura
Centro Responsable del título
International School for Postgraduate Studies
Semestre
Primero
Créditos
3
Tipo
Optativa
Tipo de enseñanza
Enseñanza Virtual
Profesorado
- Juan Manuel Jurado Rodríguez
Tutorías
Juan Manuel Jurado Rodríguez
Email- Primer semestre
- Lunes 9:00 a 11:00 (Edificio Auxiliar Etsiit, Seminario 1.3)
- Martes 10:30 a 14:30 (Edificio Auxiliar Etsiit, Seminario 1.3)
- Segundo semestre
- Jueves 10:30 a 14:30 (D 1.3 Edificio Auxiliar)
- Jueves 17:30 a 18:30 (D 1.3 Edificio Auxiliar)
- Viernes 17:30 a 18:30 (D 1.3 Edificio Auxiliar)
Breve descripción de contenidos (Según memoria de verificación del Máster)
- OpenGL.
- Primitivas. Transformaciones geométricas. Cauce Gráfico. Propiedades materiales. Luces. Transformación de visualización. Interacción. Cálculo de normales. Arquitectura de aplicaciones basadas en OpenGL.
- Geometría analítica.
- Puntos, Vectores, Rectas, Planos, Triángulos, Polígonos. Inclusión. Intersección.
- Geometría Computacional.
- Problemas tipo (convex hull, triangulación, búsqueda, diagramas de Voronoi). Estrategias de solución (divide y vencerás, barrido, incremental). Estructuras de datos. Aplicaciones
Prerrequisitos y/o Recomendaciones
- Se recomienda tener conocimientos de programación
Competencias
Competencias Básicas
- CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
- CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
- CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
- CB9. Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
- CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
Competencias Generales
- CG01. Habilidades cognitivas: conocer los principales problemas o retos tecnológicos planteados en el ámbito de las líneas de investigación del programa de posgrado, conocer los principios de las técnicas o metodologías de solución para dichos problemas propuestas por la comunidad científica, conocer las debilidades y fortalezas de dichas soluciones, así como conocer las aplicaciones que este conocimiento tiene en la sociedad actual.
- CG02. Destreza para iniciar un trabajo de investigación científica o desarrollo tecnológico original e innovador, en el marco de los problemas descritos en el punto anterior.
- CG03. Ser capaz de emplear el conocimiento científico existente en la resolución de problemas o mejora de procesos a nivel individual o en el contexto de empresas u organismos públicos.
- CG04. Capacidades sistémicas para obtener la capacidad de asimilación y adaptación a la evolución futura del estado del arte en el ámbito de las disciplinas científicas del Máster.
- CG05. Destrezas tecnológicas: capacidad de usar, evaluar, crear, modificar o extender la herramientas informáticas útiles en la resolución de problemas relacionados con las líneas de investigación
- CG06. Capacidades metodológicas: conocer las principales fuentes bibliográficas que describen los avances científicos en las líneas de investigación del programa de posgrado.
- CG07. Destrezas lingüísticas: conocer y utilizar la terminología científica especializada, tanto en español como en inglés, relacionada con las líneas de investigación del departamento.
- CG08. Competencias personales: capacidad de análisis y síntesis en la resolución efectiva de problemas, así como capacidad de toma de decisiones, organización y planificación. Capacidad de comunicación escrita y oral.
- CG09. Competencias interpersonales: capacidad de trabajo en equipo, incluyendo la toma de decisiones en colectivos o grupos. Habilidades en las relaciones interpersonales. Habilidades para presentar trabajos y mantener debates en grupo.
- CG10. Destrezas de redacción: ser capaz de expresar los resultados y el desarrollo de las investigaciones en textos o informes científico-técnicos, conocer los mecanismos de revisión entre pares propios de la ciencia para estos documentos, así como los mecanismos para su difusión en forma de artículos en revistas, libros, sitios web o en aportaciones a congresos.
Competencias Específicas
- CE01. Ser capaz de llevar a cabo un trabajo de investigación en campos científicos relacionados con el desarrollo del software, teniendo en cuenta los recursos disponibles y sus implicaciones éticas y sociales
- CE05. Identificar y valorar propiedades software de usabilidad, accesibilidad, seguridad, confiabilidad, rendimiento, y ética informática, entre otras, y analizar cómo afectan a la calidad de un sistema software.
- CE07. Diseñar y desarrollar sistemas software desde una perspectiva centrada en el usuario.
- CE11. Reconocer y analizar los métodos y técnicas de sistemas de acceso integrado a múltiples fuentes de datos, en cuanto a los modelos espaciales y temporales para el diseño de base de datos, los almacenes de datos y sistemas OLAP, las ontologías y/o la web semántica.
- CE13. Aprender, conocer y saber utilizar los fundamentos y métodos matemáticos necesarios para abordar y resolver aplicaciones gráficas, de animación, de visualización, y/o de realidad virtual, entre otras.
- CE14. Comprender, diseñar, implementar y evaluar algoritmos gráficos, tanto 2D como 3D, para la representación, digitalización, visualización, animación e interacción de modelos con su entorno y su aplicación en interfaces de usuario gráficas.
- CE15. Conocer y comprender los fundamentos, técnicas y herramientas básicas para la programación eficiente de algoritmos gráficos y en particular en arquitecturas de altas prestaciones como las unidades de procesamiento de gráficos (GPU).
Competencias Transversales
- CT01. Mostrar interés por la calidad y la excelencia en la realización de diferentes tareas.
- CT02. Comprender y defender la importancia que la diversidad de culturas y costumbres tienen en la investigación o práctica profesional.
- CT03. Tener un compromiso ético y social en la aplicación de los conocimientos adquiridos.
- CT04. Ser capaz de trabajar en equipos interdisciplinarios para alcanzar objetivos comunes desde campos expertos diferenciados.
- CT05. Incorporar los principios del Diseño Universal en el desempeño de su profesión.
Resultados de aprendizaje (Objetivos)
- El alumno sabrá/comprenderá:
- Entender el fundamento del modelado basado en restricciones.
- Los conceptos básicos de geometría
- Los fundamentos del modelado geométrico,
- La estructura de aplicaciones gráficas y sistemas GIS.
- El alumno será capaz de:
- Programar ejemplos simples con OpenGL.
- Razonar sobre aspectos geométricos de aplicaciones gráficas.
- Evaluar algoritmos geométricos.
- Diseñar algoritmos geométricos.
Programa de contenidos Teóricos y Prácticos
Teórico
-
OpenGL.
-
Primitivas. Transformaciones geométricas. Cauce Gráfico. Propiedades materiales. Luces. Transformación de visualización. Interacción. Cálculo de normales. Arquitectura de aplicaciones basadas en OpenGL.
-
-
Geometría Analítica.
-
Puntos, Vectores, Rectas, Planos, Triángulos, Polígonos. Inclusión. Intersección.
-
-
Geometría Computacional.
-
Problemas tipo (convex hull, triangulación, búsqueda, diagramas de Voronoi). Estrategias de solución (divide y vencerás, barrido, incremental). Estructuras de datos. Aplicaciones
-
Práctico
- Tarea 1: OpenGL:
- Programa de dificultad básica en 3D con C++, OpenGL y Qt
- Tarea 2:
- OpenGL: Programa de dificultad básica en 3D con C++, OpenGL y Qt
- Tarea 3:
- OpenGL: Programa de dificultad básica en 3D con C++, OpenGL y Qt
- Tarea 4:
- Geometría y GC: Programa de dificultad básica en 2D con C++, OpenGL y Qt
- Tarea 5:
- Geometría y GC: Programa de dificultad básica en 2D con C++, OpenGL y Qt
- Tarea 6:
- Geometría y GC: Programa de dificultad media en 3D con C++, OpenGL y Qt
Bibliografía
Bibliografía fundamental
- A. Paoluzzi: "Geometric Programming for Computer-Aided Design". Wiley 2003.
- J. O Rourke: "Computational geometry in C". 1997. Cambridge University Press
- J. Vince: "Essential Matehamtics for Computer Graphics fast". Springer Verlag 2001. 1989
- Opengl-tutorial http://www.opengl-tutorial.org/es/
- D. Hearn, M.P. Baker: Gráficos por Computadora con OpenGL. Pearson, 2006.
- http://genaromendez.com/cursos/graficacion/graficosporcomputadorayopengl.pdf
- J. Ribelles, J. Lluch (eds.): OpenGL en fichas: Una introducción práctica. Publicacions de la Universitat Jaume I. 2003.
- OpenGL programming guide, versión 3, 5 edicion. OpenGL Architecture Review Board. Adisson-Wesley
Bibliografía complementaria
- R.S. Wright, B. Lipchak: Programación OpenGL. Anaya 2005
- M. de Berg, O. Cheong, M. van Kreveld, M. Overmars: Computational Geometry. Algorithms and Applications. Springer-Verlag 2008. http://people.inf.elte.hu/fekete/algoritmusok_msc/terinfo_geom/konyvek/Computational%20Geometry%20-%20Algorithms%20and%20Applications,%203rd%20Ed.pdf
- J. Chen: Computational Geometry: Methods and Applications. Computer Science Department. Texas A&M University. 1996. http://faculty.cs.tamu.edu/chen/notes/geo.pdf
- Fletcher Dunn and Ian Parberry: 3D Math Primer for Graphics and Game Development. Wordware Publishing, Inc. 2002. https://tfetimes.com/wp-content/uploads/2015/04/F.Dunn-I.Parberry-3D-Math-Primer-for-Graphics-and-Game-Development.pdf
Enlaces recomendados
Metodología docente
- MD01 Lección magistral/expositiva
- MD02 Sesiones de discusión y debate
- MD03 Resolución de problemas y estudio de casos prácticos
- MD06 Ejercicios de simulación
- MD09 Realización de trabajos individuales
- MD11 Desarrollo de foros on-line de debate, de trabajo, de información, de consultas.
- MD12 Material audiovisual editado por el profesor (Presentaciones con audio, capturas de pantalla con video, grabación de clases, páginas web)
- MD14 Cuestionarios de autoevaluación on-line
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)
Evaluación Ordinaria
- El artículo 17 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que la convocatoria ordinaria estará basada preferentemente en la evaluación continua del estudiante, excepto para quienes se les haya reconocido el derecho a la evaluación única final.
- La evaluación para ambas modalidades será la misma. Se plantean 4 tareas que implican una cantidad de esfuerzo y conocimiento que se van incrementado progresivamente. De esta manera el alumno puede modular la cantidad de esfuerzo que quiera dedicar y la nota que se desee obtener.
- Se aprueba con un 5.
- Las tareas son:
- Tarea 1 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita crear un objeto 3D, un cubo, y añadir tres modos de visualización
- Tarea 2 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita crear leer un objeto PLY y aplicar transformaciones
- Tarea 3 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita mover la cámara con el ratón y cambiar el tipo de cámara
- Tarea 4 (Geometría Computacional)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita importar una polilínea 2D en formato PLY. Para cada segmento se calculará el punto medio y se añadirá un segmento de línea que tenga como origen dicho punto intermedio y que sea perpendicular.
- Tarea 5 (Geometría Computacional)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita generar un polígono regular de n lados. Al mover el cursor, el programa dibujara una línea entre el cursor y el punto más cercano del polígono.
- Tarea 6 (Geometría Computacional)
- Nota: 0-2.5 pts.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita importar un modelo 3D en formato PLY. Dadas dos caras, buscará el camino más corto para llegar de una a otra siguiendo la superficie, las aristas, del objeto. Una vez calculado se mostrará.
- Tarea 1 (OpenGL)
- Para ambas modalidades se realizarán pruebas para comprobar tanto la autoría de los trabajos como el nivel de los conocimientos se han adquirido por parte del alumno. Para ello se realizará una prueba evaluatoria consistente en preguntas sobre las prácticas entregadas. También se podrán proponer cambios, modificaciones y extensiones sobre los programas implementados que tendrán que llevarse a cabo en el momento.
- Para la modalidad A, la prueba se realizará mediante un encuentro personal.
- Para la modalidad B, la prueba se realizará por videoconferencia.
Evaluación Extraordinaria
- El artículo 19 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que los estudiantes que no hayan superado la asignatura en la convocatoria ordinaria dispondrán de una convocatoria extraordinaria. A ella podrán concurrir todos los estudiantes, con independencia de haber seguido o no un proceso de evaluación continua. De esta forma, el estudiante que no haya realizado la evaluación continua tendrá la posibilidad de obtener el 100% de la calificación mediante la realización de una prueba y/o trabajo.
- La evaluación para ambas modalidades será la misma. Se plantean 4 tareas que implican una cantidad de esfuerzo y conocimiento que se van incrementado progresivamente. De esta manera el alumno puede modular la cantidad de esfuerzo que quiera dedicar y la nota que se desee obtener.
- Se aprueba con un 5.
- Las tareas son:
- Tarea 1 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita crear un objeto 3D, un cubo, y añadir tres modos de visualización
- Tarea 2 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita crear leer un objeto PLY y aplicar transformaciones
- Tarea 3 (OpenGL)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita mover la cámara con el ratón y cambiar el tipo de cámara
- Tarea 4 (Geometría Computacional)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita importar una polilínea 2D en formato PLY. Para cada segmento se calculará el punto medio y se añadirá un segmento de línea que tenga como origen dicho punto intermedio y que sea perpendicular.
- Tarea 5 (Geometría Computacional)
- Nota: 0-1.5 pt.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita generar un polígono regular de n lados. Al mover el cursor, el programa dibujara una línea entre el cursor y el punto más cercano del polígono.
- Tarea 6 (Geometría Computacional)
- Nota: 0-2.5 pts.
- Programación de una aplicación en C++, QtCreator, librerías de Qt, OpenGL que permita importar un modelo 3D en formato PLY. Dadas dos caras, buscará el camino más corto para llegar de una a otra siguiendo la superficie, las aristas, del objeto. Una vez calculado se mostrará.
- Tarea 1 (OpenGL)
- Para ambas modalidades se realizarán pruebas para comprobar tanto la autoría de los trabajos como el nivel de los conocimientos se han adquirido por parte del alumno. Para ello se realizará una prueba evaluatoria consistente en preguntas sobre las prácticas entregadas. También se podrán proponer cambios, modificaciones y extensiones sobre los programas implementados que tendrán que llevarse a cabo en el momento.
- Para la modalidad A, la prueba se realizará mediante un encuentro personal.
- Para la modalidad B, la prueba se realizará por videoconferencia.
Evaluación única final
- El artículo 8 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que podrán acogerse a la evaluación única final, el estudiante que no pueda cumplir con el método de evaluación continua por causas justificadas.
- Para acogerse a la evaluación única final, el estudiante, en las dos primeras semanas de impartición de la asignatura o en las dos semanas siguientes a su matriculación si ésta se ha producido con posterioridad al inicio de las clases o por causa sobrevenidas. Lo solicitará, a través del procedimiento electrónico, a la Coordinación del Máster, quien dará traslado al profesorado correspondiente, alegando y acreditando las razones que le asisten para no poder seguir el sistema de evaluación continua.
- La evaluación en tal caso consistirá en:
- Examen teórico: examen escrito u oral sobre contenidos teóricos de la asignatura
- Examen práctico: realización de programas