Guía docente de Fundamentos de Geometría y Geometría Computacional (M52/56/2/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

Semipresencial

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
    • Lunes 9:00 a 11:00 (Edificio Auxiliar Etsiit, Seminario 1.3)
    • Martes 10:30 a 14:30 (Edificio Auxiliar Etsiit, Seminario 1.3)
    • 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)

  1. 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.
  2. Geometría analítica.
    • Puntos, Vectores, Rectas, Planos, Triángulos, Polígonos. Inclusión. Intersección.
  3. 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.

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

  1. 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.

  2. Geometría Analítica.

    • Puntos, Vectores, Rectas, Planos, Triángulos, Polígonos. Inclusión. Intersección.

  3. 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

Metodología docente

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á.
  • 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á.
  • 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

Información adicional