A python library for generating beizer curves.
Project description
beizer-curves
A python library for generating beizer curves.
Installation
pip install beizer-curves
Usage
def beizer_curve(
points,
output_points_count: int,
destructive: bool = False,
dtype: np.dtype = np.int64,
):
Generate a beizer curve.
points- Knots in format:[[x1, x2, ..., xn], [y1, y2, ..., yn], [z1, z2, ..., zn]].output_points_count- How many points of the curve to generate.destructive- Allow function to modifypointsarray. Don't set to true, if you want to usepointsarray later.dtype- dtype of array of returned points of the curve.
Points of a curve are returned in format: [[x1, x2, ..., xn], [y1, y2, ..., yn], [z1, z2, ..., zn]], where n is output_points_count.
def random_beizer_curve(
start_point,
end_point,
output_points_count: int,
random_points_count: int = 1,
point_spread: float = 1,
noise_max_offset: float = 0,
noise_rate: float = 0.5,
dtype=np.int64,
return_forming_points: bool = False,
):
Generate a random beizer curve, which starts at start_point and ends at end_point.
-
start_point,end_point- coordinates of start and end points of curve in format[x, y, z, ...]. -
output_points_count- How many points of the curve to generate.if output_points_count < 0: output_points_count = math.ceil(distance / -output_points_count)
Where
distanceis distance between start and end. -
random_points_count- How many knots to generate. -
point_spread- A scale of a rectangular figure with corners of start_point and end_point, in bounds of which random knots are generated. Has to be > 0. -
noise_max_offset- Max offset of a curve point.if output_points_count < 0: output_points_count = math.ceil(distance / -output_points_count)
Where
distanceis distance between start and end. -
noise_rate- A part of curve points to apply noise offset to. Has to belong to [0; 1]. -
dtype- dtype array of returned points of the curve. -
return_forming_points-return points, curve if return_forming_points else curve, wherepointsare randomly generated knots
Usage example
import random
import matplotlib.pyplot as plt
import numpy as np
from beizer_curves import *
def plot_curve(points_count, i):
start = [random.randrange(1, 2000), random.randrange(1, 2000)]
noise = -200 * i
end = [random.randrange(1, 2000), random.randrange(1, 2000)]
points, curve = random_beizer_curve(
start,
end,
output_points_count=50,
random_points_count=points_count,
noise_max_offset=noise,
noise_rate=0.25,
dtype=np.float64,
return_forming_points=True,
)
fig = plt.figure()
plt.axis("equal")
plt.scatter(curve[0], curve[1])
plt.scatter(points[0], points[1], color='red')
fig.savefig(f"example_{points_count}_{i + 1}.png")
Example curves
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beizer-curves-0.0.1.tar.gz.
File metadata
- Download URL: beizer-curves-0.0.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94513afe165b6d709c05ee3283eb02ce94686fac3c351bd4a83e1c4923dd455e
|
|
| MD5 |
bf67ef2df9b85287739ecf59d9b1f8dc
|
|
| BLAKE2b-256 |
aafc632abd72e8336b51628d3f7336957ab6f3ca2e0f281f3a1c3add25063944
|
File details
Details for the file beizer_curves-0.0.1-py3-none-any.whl.
File metadata
- Download URL: beizer_curves-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
425ef9ba984e494f2fbd040a34adff7674532316cce219376b4c116713ee5db4
|
|
| MD5 |
1a00bf3fbb88618f26485a1d65388e45
|
|
| BLAKE2b-256 |
005885ba3ae1189daac9982e87decabe87e630beb03c970214b750acce6a3156
|