Interactive Computational Geometry in Python
Author: Jim Arlow, Clear View training Limited.
This book is an interactive introduction to some of the fundamental algorithms of computational geometry. It is supplied as a set of interactive Jupyter Notebooks.
Here are four sample chapters as non-interactive HTML pages. Because of limitations in Jupyter export to HTML, these chapters do not show the interactive demonstrations, they only show the text and a few figure. I am providing them so you can get some idea of what you will get in the book:
Introduction (open this to view the TOC for the whole book)
Chapter 2: Polygonal chains in two dimensions
Chapter 3: Triangles and the relationship of points to lines
The advantages of interactivity
In a conventional paper-based textbook computational geometry algorithms are either presented as narrative, in pseudo code or in a language such as C or Java. Often (but not always) there is a separate code base that the reader can download and use. However, in this book, the code base, which is Python 3, is integrated into the text, in a Jupyter Notebook and it is fully executable. With Jupyter Notebooks, we are no longer limited to a static description of algorithms, we present functioning, executing code that implements and demonstrates these algorithms.
There is nothing better than seeing an algorithm in action! We have found that a good interactive demonstration can replace an extraordinary amount of text. Furthermore, whereas a textual (and to a lesser extent, pseudo code) description of an algorithm may be subject to the ambiguity of natural language, the demonstration is unambiguous because it is the algorithm in action.
Instructions for running the notebooks
This book is delivered as a set of interactive Jupyter Notebooks and, as you might expect, you will need to install some software (all free and open source) in order to run them. It is quite straightforward, and you can find full details of how to run the notebooks on Mac, Linux and Windows in the Introduction.
Note: We have an experimental virtual machine available for running the notebooks. If you are interested, contact us for details. LINK