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


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.


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)
# 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)
# 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)
# example output: [(4.057509245253113, -15.430422554283604), (2.2509595260473114, 6.780851043436018), (9.330996610075898, 3.2082420488010035)]


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.


Update packages

pipenv update --dev setuptools wheel twine


Update the content of, 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 sdist bdist_wheel

Deploy to PyPi or TestPyPi to test things first

pipenv run twine upload --skip-existing --repository-url 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.

Source Distribution

random_geometry_points-1.1.2.tar.gz (9.0 kB view hashes)

Uploaded source

Built Distribution

Supported by

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