/crossproduct

2D & 3D geometric algorithms in Python

Primary LanguageJupyter NotebookMIT LicenseMIT

crossproduct

2D & 3D geometric algorithms in Python.

under development

Introduction

crossproduct does 2D and 3D geometry calculations in Python. It builds on the Shapely package by including additional geometric objects (such as vectors, lines and polyhedrons) and by extending the geometric algorithms to work in 3D space. It also uses the triangle package and implements a number of the geometric algorithms previous available on the website by Dan Sunday (now available as a book).

crossproduct is a Python package designed for applications with complex, small-scale geometries. It provides open source and well documented algorithms which can be easily understood and modified as needed.

The package is written as a series of classes which represent the major geometric objects, such as Point, Plane and Polygon.

The methods of each class are used to perform geometric calculations. For example, the cross product of two vectors is performed using the cross_product method of the Vector class:

>>> from crossproduct import Vector
>>> v1 = Vector(1,0,0)
>>> v2 = Vector(0,1,0)
>>> result = v1.cross_product(v2)
>>> print(result)
Vector(0,0,1)

Installation

The project is available on PyPi here: https://pypi.org/project/crossproduct/

To install:

  • first install Shapely (use conda install shapely if using the Anaconda distribution)
  • then install triangle (pip install triangle)
  • then install crossproduct (pip install crossproduct)

Documentation

Full documentation is available here: https://crossproduct.readthedocs.io/en/latest/

GitHub

To view the source code, raise issues and suggest improvements - visit the projects GitHub page: https://github.com/stevenkfirth/crossproduct

References