Skip to main content

Incremental convex hull builder and visualizer

Project description

IncrementalConvexHull

Incremental Convex Hull Visualization for CSC 591, Spring 2021

Starting Resources

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

incremental-convex-hull-1.0.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

incremental_convex_hull-1.0.1-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file incremental-convex-hull-1.0.1.tar.gz.

File metadata

  • Download URL: incremental-convex-hull-1.0.1.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for incremental-convex-hull-1.0.1.tar.gz
Algorithm Hash digest
SHA256 18e92921e306ad268099fda765c21ae0fe4cd0fc68256704302becdb2c489940
MD5 2cfa42faebf2e4519c639c269be51615
BLAKE2b-256 8d453fede9ca2127895b41c0a273b502ee5f6bd83bd36dcfcf69e6f4da5b4620

See more details on using hashes here.

File details

Details for the file incremental_convex_hull-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: incremental_convex_hull-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for incremental_convex_hull-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e80cdac44b62cd0efa6388886dbc5f060cbbf55393d766edc769d62ed34594d8
MD5 5b8319676d24affb0e8d67f1d5d99155
BLAKE2b-256 d83b073b99f63f09cfa462463583c682bb7d2224ac9c92e6c3ff071e19f1a6b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page