Title:  Computational Geometry 

Code:  VGE 

Ac.Year:  2017/2018 

Term:  Summer 

Curriculums:  

Language of Instruction:  Czech 

Credits:  5 

Completion:  examination (written) 

Type of instruction:  Hour/sem  Lectures  Sem. Exercises  Lab. exercises  Comp. exercises  Other 

Hours:  26  0  0  0  26 

 Examination  Tests  Exercises  Laboratories  Other 

Points:  51  0  0  0  49 



Guarantor:  ©paněl Michal, Ing., Ph.D., DCGM 

Lecturer:  Bařina David, Ing., Ph.D., DCGM Beran Vítězslav, Ing., Ph.D., DCGM Herout Adam, prof. Ing., Ph.D., DCGM ©paněl Michal, Ing., Ph.D., DCGM Zemčík Pavel, prof. Dr. Ing., DCGM 
Faculty:  Faculty of Information Technology BUT 

Department:  Department of Computer Graphics and Multimedia FIT BUT 

Schedule:  Day  Lesson  Week  Room  Start  End  Lect.Gr.  St.G.  EndG. 

Wed  exam  druhá opravná  20180523  A112  12:00  13:50  1MIT   
Wed  exam  druhá opravná  20180523  A112  12:00  13:50  2MIT   
Wed  exam  první opravná  20180516  A112  14:00  15:50  1MIT   
Wed  exam  první opravná  20180516  A112  14:00  15:50  2MIT   
Wed  exam  řádná  20180509  A112  15:00  16:50  1MIT   
Wed  exam  řádná  20180509  A112  15:00  16:50  2MIT   


 Learning objectives: 

  To get acquainted with the typical problems of computational geometry and existing solutions. To get deeper knowledge of mathematics in relation to computer graphics and to understand the foundations of geometric algebra. To learn how to apply basic algorithms and methods in this field to problems in computer graphics and machine vision. To practice presentation and defense of results of a small project.  Description: 

  Linear algebra, geometric algebra, affine an projective geometry, principle of duality, homogeneous and parallel coordinates, point in polygon testing, convex hull, intersection problems, range searching, space partitioning methods, 2D/3D triangulation, Delaunay triangulation, proximity problem, Voronoi diagrams, tetrahedral meshing, surface reconstruction, point clouds, volumetric data, mesh smoothing and simplification, linear programming.  Knowledge and skills required for the course: 

 
 Basic knowledge of linear algebra and geometry.
 Good knowledge of computer graphics principles.
 Good knowledge of basic abstract data types and fundamental algorithms.
 Basic knowledge of the C/C++ language and object oriented programming.
 Subject specific learning outcomes and competences: 

 
 Student will get acquaint with the typical problems of computational geometry.
 Student will understand the existing solutions and their applications in computer graphics and machine vision.
 Student will get deeper knowledge of mathematics.
 Student will learn the principles of geometric algebra including its application in graphics and vision related tasks.
 Student will practice programming, problem solving and defence of a small project.
 Generic learning outcomes and competences: 

 
 Student will learn terminology in English language.
 Student will learn to work in a team and present/defend results of their work.
 Student will also improve his programming skills and his knowledge of development tools.
 Syllabus of lectures: 


 Introduction to computational geometry: typical problems in computer graphics and machine vision, algorithm complexity and robustness, numerical precision and stability.
 Overview of linear algebra and geometry, coordinate systems, homogeneous coordinates, affine and projective geometry. An example from 3D vision.
 Principle of duality and its applications.
 Point in polygon testing, polygon triangulation, convex hull in 2D/3D and practical applications.
 Intersection problems (fast raytriangle intersection, etc.). Example of how to speedup a simple raytracer.
 Basics and applications of geometric algebra.
 Geometric algebra and conformal geometry. Geometric transformations of basic elements in E2 and E3 using geometric algebra.
 Practical applications of geometric algebra and conformal geometry in computer graphics.
 Range searching and space partitioning methods: range tree; quad tree, kd tree, BSP tree. Applications in machine vision.
 Proximity problem: closest pair; nearest neighbor; Voronoi diagrams.
 Triangulation in 2D/3D, Delaunay triangulation, tetrahedral meshing.
 Surface reconstruction from point clouds and volumetric data. Surface simplification, mesh smoothing and remeshing. Example of 3D model creation from several photos.
 More computational geometry problems and modern trends. Linear programming: basic notion and applications; halfplane intersection.
 Syllabus  others, projects and individual work of students: 

 Team or individually assigned projects.  Fundamental literature: 


 Leo Dorst, Daniel Fontijne, Stephen Mann: Geometric Algebra for Computer Science: An ObjectOriented Approach to Geometry, rev. ed., Morgan Kaufmann, 2007.
 Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars: Computational Geometry: Algorithms and Applications, 3rd. ed., SpringerVerlag, 2008.
 Study literature: 


 Leo Dorst, Daniel Fontijne, Stephen Mann: Geometric Algebra for Computer Science: An ObjectOriented Approach to Geometry, rev. ed., Morgan Kaufmann, 2007.
 Geometric Algebra (based on Clifford Algebra), http://staff.science.uva.nl/~leo/clifford/
 Suter, J.: Geometric Algebra Primer, 2003, http://www.jaapsuter.com/data/2003312geometricalgebra/geometricalgebra.pdf
 Gaigen, http://www.science.uva.nl/ga/gaigen/
 Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars: Computational Geometry: Algorithms and Applications, 3rd. ed., SpringerVerlag, 2008.
 Computational Geometry on the Web, http://cgm.cs.mcgill.ca/~godfried/teaching/cgweb.html
 Controlled instruction: 

  The evaluation includes individual and team projects, and the final exam.  Progress assessment: 

 
 Preparing for lectures (readings): up to 18 points
 Realized and defended project: up to 31 points
 Written final exam: up to 51 points
 Minimum for final written examination is 17 points.
 Minimum to pass the course according to the ECTS assessment  50 points.
 
