Library to generate random points (2D or 3D) on geometry surfaces

# random-geometry-points

This module provides classes to generate random points on geometry surfaces. These points can then be used as test data, e.g. to simulate measurements of a measurement device.

## Installation

You can install this module using pip globally

```pip install random-geometry-points
```

or using pipenv

```cd <your project folder>
pipenv install random-geometry-points
```

## Basic Usage

Currently the geometry types Plane, Sphere and 2D Circle are supported. You can import the geometry classes by using the following import statements.

```from random_geometry_points.plane import Plane
from random_geometry_points.sphere import Sphere
from random_geometry_points.circle2d import Circle2D
```

Now you can create an arbitrary number of random points lying on a geometry surface.

```# create a plane object with n = (1, 0, 0), x0 = (0, 0, 0), d = 0 and radius = 10
normal_vec = (1.0, 0.0, 0.0)
ref_point = (0.0, 0.0, 0.0)
plane = Plane(normal_vec, 0.0, ref_point, 10.0)

# create and print 3 random points lying on the plane
random_plane_points = plane.create_random_points(3)
print(random_plane_points)
# example output: [(0.0, -2.058506783308933, -5.777518695971468), (0.0, 2.501766732323411, 6.740902158795952), (0.0, 7.846400008799242, 5.304670974614023)]
```
```# create a sphere object with x = 1.0, y = -4.5, z = 3.3 and radius = 11.35
sphere = Sphere(1.0, -4.5, 3.3, 11.35)

# create and print 3 random points lying on the sphere
random_sphere_points = sphere.create_random_points(3)
print(random_sphere_points)
# example output: [(4.442124959724451, -1.593759345598388, -7.1176792530940025), (-7.102728837759106, -6.022944977793705, -4.500572028791214), (-10.190814503489936, -4.676727604583875, 5.1859846505890115)]
```
```# create a circle object with x = 1.0, y = -4.5 and radius = 11.35
circle = Circle2D(1.0, -4.5, 11.35)

# create and print 3 random points lying on the circle
random_circle_points = circle.create_random_points(3)
print(random_circle_points)
# example output: [(4.057509245253113, -15.430422554283604), (2.2509595260473114, 6.780851043436018), (9.330996610075898, 3.2082420488010035)]
```

## Documentation

Please take a look at the Wiki for a more detailed description. There you get more detailed information on how you can use the geometry classes, the meaning of the geometry parameters and error handling.

## Deployment

### Update packages

`pipenv update --dev setuptools wheel twine`

### Update `setup.py`

Update the content of `setup.py`, especially the version information.

### Commit and tag

Commit and push the changes along with a new version tag. Travis will run the test cases automatically when pushing to the master branch.

### Build source archive and built distribution

`pipenv run python setup.py sdist bdist_wheel`

### Deploy to PyPi or TestPyPi to test things first

`pipenv run twine upload --skip-existing --repository-url https://test.pypi.org/legacy/ dist/*`

`pipenv run twine upload --skip-existing dist/*`

## Project details

This version 1.1.2 1.1.1 1.1.0 1.0.0