Library to generate random points (2D or 3D) on geometry surfaces
Project description
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.
Source Distribution
Built Distribution
File details
Details for the file random_geometry_points-1.1.2.tar.gz
.
File metadata
- Download URL: random_geometry_points-1.1.2.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0d8dbc49652eeed1d9b3a9e4ca24ed2ae78feab52448391c199c7e938cb3164 |
|
MD5 | 3dd1a50e9da071224a7f44841297d075 |
|
BLAKE2b-256 | c67e52115b81ff0cb10b41a04a5125cb6b4ce781c5994807b1d4b9844921fc2c |
File details
Details for the file random_geometry_points-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: random_geometry_points-1.1.2-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1841437ea2a63e3d493981ee85ff224ea4f9a11c357859315fd7bb5b86674b6 |
|
MD5 | 1bcd9385023d143c612eb69b9c2bce24 |
|
BLAKE2b-256 | 19303e9f632f9b0a6f93c972025b93827d5ffc917619877694f0f5a084e564a5 |