YSC2229: Introductory Data Structures and Algorithms
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. OCaml Style Guide
  • 1. Week 01: Introduction
  • 2. Week 02: Working with Arrays
  • 3. Week 03: Complexity of Algorithms and Order Notation
  • 4. Week 04: Divide-and-Conquer Algorithms
  • 5. Week 05: Binary Heaps and Priority Queues
  • 6. Week 06: Abstract Data Types
  • 7. Midterm Project: Memory Allocation and Reclamation
  • 8. Week 07: Hashing-Based Data Structures
  • 9. Week 08: Searching in Strings
  • 10. Week 09: Backtracking and Dynamic Programming
  • 11. Week 10: Data Encoding and Compression
  • 12. Week 11: Binary Search Trees
  • 13. Week 12: Graph Algorithms
  • 14. Week 13: Elements of Computational Geometry
    • 14.1. Basics of Computational Geometry
    • 14.2. Points, Segments and their Properties
    • 14.3. Working with Polygons
    • 14.4. Convex Hulls
  • 15. Final Project: Vroomba Programming
YSC2229: Introductory Data Structures and Algorithms
  • Docs »
  • 14. Week 13: Elements of Computational Geometry

14. Week 13: Elements of Computational GeometryΒΆ

  • 14.1. Basics of Computational Geometry
    • 14.1.1. Working with graphics in OCaml
  • 14.2. Points, Segments and their Properties
    • 14.2.1. On precision and epsilon-equality
    • 14.2.2. Points on a two-dimensional plane
    • 14.2.3. Points as vectors
    • 14.2.4. Scalar product of vectors
    • 14.2.5. Polar coordinate system
    • 14.2.6. Vector product and its properties
    • 14.2.7. Segments on a plane
    • 14.2.8. Generating random points on a segment
    • 14.2.9. Collinearity of segments
    • 14.2.10. Checking for intersections
    • 14.2.11. Finding intersections
  • 14.3. Working with Polygons
    • 14.3.1. Encoding and rendering polygons
    • 14.3.2. Some useful polygons
    • 14.3.3. Basic polygon manipulations
    • 14.3.4. Queries about polygons
    • 14.3.5. Intermezzo: rays and intersections
    • 14.3.6. Point within an polygon
  • 14.4. Convex Hulls
    • 14.4.1. Plane-sweeping algorithm
    • 14.4.2. Graham scan invariant
Next Previous

© Copyright 2021, Ilya Sergey

Built with Sphinx using a theme provided by Read the Docs.