Skip to main content

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

Project description

Build Status Coverage Status PyPI version PyPI pyversions

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/*

Useful links

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
random_geometry_points-1.1.2-py3-none-any.whl (10.7 kB) Copy SHA256 hash SHA256 Wheel py3
random_geometry_points-1.1.2.tar.gz (9.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page