IncrementalConvexHull
Incremental Convex Hull Visualization for CSC 591, Spring 2021
Starting Resources
- Read our documentation
- In-depth walkthrough outlining how to use the GUI along with some interesting examples
Development
We recommend working in a virtual environment to maintain consistency across developers' machines.
To set things up, run the following in the root project directory:
$ python -m venv --prompt IncConvexHull --upgrade-deps venv
$ source ./venv/bin/activate # or venv\Scripts\activate.bat in Windows cmd
# or venv\Scripts\Activate.ps1 in PowerShell
$ pip install -r requirements.txt
[Development happens here]
$ deactivate # When you're done working
If you ever add/change dependencies during development (e.g. running pip install or pip upgrade within the virtual environment), be sure to run pip freeze > requirements.txt and commit those changes to the repository.
Incremental Convex Hull Concepts and Backgrounds
This interactive visualization tool will plot the points of a convex polygon while incrementally growing the convex hull as points are added. Additionally, this tool will maintain a valid traingulation of the plotted polygon. The polygons are represented using a graph data structure with nodes and edges.
Convex Polygons
The formal definition of convex polygon is a shape in which no interior angle is greater than 180 degrees. The simplest form of a convex polygon is a triangle. You can think of this visually as a shape with no "dents" in it, or edges that protrude inside the main cavity of the shape.
Triangulations
Every convex polygon can be broken down into smaller triangles, the simplest form of a convex polygon. This process of dividing a polygon into triangles is called triangulation. There are multiple ways the triangulate a shape. Our visualization supports multiple triangulations. Upon clicking an internal edge in the polygon, the edge will then flip, producing another valid triangulation.
Convex Hulls
A convex hull is the outtermost boundary in a set of points that encompasses all other points. This visualization tool only supports convex polygons with no colinear points. The following are properties of convex polygons:
The following are properties of convex hulls:
- All points within a set are encompassed by the convex hull
- A tangent line can be drawn for each point on the convex hull such that all other points are on one side of the tangent line
Release files for incremental-convex-hull 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| incremental-convex-hull-1.0.1.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| incremental_convex_hull-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.7 kB
Release files / incremental-convex-hull-1.0.1.tar.gz
| Download URL | incremental-convex-hull-1.0.1.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18e92921e306ad268099fda765c21ae0fe4cd0fc68256704302becdb2c489940
|
|
BLAKE2b-256 checksum How to use checksums |
8d453fede9ca2127895b41c0a273b502ee5f6bd83bd36dcfcf69e6f4da5b4620
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2
|
Release files / incremental_convex_hull-1.0.1-py3-none-any.whl
| Download URL | incremental_convex_hull-1.0.1-py3-none-any.whl |
|---|---|
| Size | 25.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e80cdac44b62cd0efa6388886dbc5f060cbbf55393d766edc769d62ed34594d8
|
|
BLAKE2b-256 checksum How to use checksums |
d83b073b99f63f09cfa462463583c682bb7d2224ac9c92e6c3ff071e19f1a6b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2
|