Skip to main content

# PyDelaunator Test of implementation of a quad-edge data structure using python.

This little project is here to study quad-edge structure for further developments of [Delaunator](https://pypi.python.org/pypi/delaunator), which waits since a long time.

There is a small GUI (done with the awesome [pyglet](http://pyglet.org) module) that allow one to play with the triangulation.

## Installation/requirements Installation in one command, including dependancies:

pip install pydelaunator

## Usage The package run the GUI if launched directly:

python -m pydelaunator

Use –help for options.

The higher-level API is the [Placer object](pydelaunator/placer.py). See [tests](pydelaunator/test/test_placer.py) for other usage examples.

## Notes ### Goals This work is mainly here to prototype a better API and detect where and why are bugs in Delaunator.

Efficiency is not a primarily goal, altough, since interfacing python with other languages is a fun exercise, i probably will try some optimizations related to C. Similarly, some algorithms ideas could be easily tested here.

Therefore, PyDelaunator is also a playground for further researchs.

### Computational geometry [Codes used there](pydelaunator/geometry.py) are mainly constitued from online ressources (SO, wikipedia). They are not toroughly [tested](pydelaunator/test/test_geometry.py), but as far as the triangulation works.

Implementating them in C could probably speed them up a little, since in python arithmetic codes tends to be costly.

### Duality Vertex/data Maybe not the most optimized, but a mapping object/vertex with a dict is certainly the less invasive for end-user, [as implemented in the Placer object](pydelaunator/placer.py).

Other ways to go:

  • client objects inheriting from Vertex

  • client objects keeping a reference to their vertex

These two ways are probably far more efficient in case of big data. However, if current API allow these, Placer object continue to track objects using the dict mapping. Modification of the Placer is needed, or an alternative implementation.

Metadata

Release files for pydelaunator 0.0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydelaunator 0.0.15
File Size Uploaded
pydelaunator-0.0.15.tar.gz 35.7 kB Details

Release files / pydelaunator-0.0.15.tar.gz

Download URL pydelaunator-0.0.15.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6617ed9d31c56d27470af78d17c22e02ac6fba654180461200ac4d4f8d60546c
BLAKE2b-256 checksum
How to use checksums
eda6bb8574488e744c905e6a98207d5a9772f629bc292cf17d3b169829eadf9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.15 This release

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

1 release file

0.0.11

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page