贝塞尔曲线、三角形和更高阶对象的辅助工具
项目描述
贝塞尔曲线、三角形和更高阶对象的辅助工具
此库提供
深入了解并查看!
为什么是贝塞尔?
贝塞尔曲线(以及三角形等)是一种参数曲线,它使用 Bernstein基
来定义曲线作为一个线性组合
这源于权重之和为1的事实
这可以通过考虑三个、四个等非负权重之和为1来推广(在上面的例子中,我们有两个非负权重 s 和 1 - s)。
由于它们的简单形式,贝塞尔曲线
可以轻松地将几何对象作为参数曲线、三角形等进行建模。
可以通过De Casteljau算法以高效和数值稳定的方式计算
由于曲线(以及三角形等)是基函数的凸组合,因此可以利用凸优化技术对许多算法(如曲线-曲线交点)进行优化
许多应用及其开发历史都在“Bernstein多项式基:一个百年的回顾”中进行描述,例如;
安装
可以使用pip安装Bezier Python包
$ python -m pip install --upgrade bezier
$ python3.12 -m pip install --upgrade bezier
$ # To install optional dependencies, e.g. SymPy
$ python -m pip install --upgrade bezier[full]
要安装纯Python版本(即没有二进制扩展)
$ BEZIER_NO_EXTENSION=true \
> python -m pip install --upgrade bezier --no-binary=bezier
Bezier是开源的,因此您也可以从GitHub获取源代码并从源代码进行安装。
入门指南
例如,要创建曲线
>>> import bezier
>>> import numpy as np
>>> nodes1 = np.asfortranarray([
... [0.0, 0.5, 1.0],
... [0.0, 1.0, 0.0],
... ])
>>> curve1 = bezier.Curve(nodes1, degree=2)
也可以确定两条曲线之间的交点(点)
>>> nodes2 = np.asfortranarray([
... [0.0, 0.25, 0.5, 0.75, 1.0],
... [0.0, 2.0 , -2.0, 2.0 , 0.0],
... ])
>>> curve2 = bezier.Curve.from_nodes(nodes2)
>>> intersections = curve1.intersect(curve2)
>>> intersections
array([[0.31101776, 0.68898224, 0. , 1. ],
[0.31101776, 0.68898224, 0. , 1. ]])
>>> s_vals = np.asfortranarray(intersections[0, :])
>>> points = curve1.evaluate_multi(s_vals)
>>> points
array([[0.31101776, 0.68898224, 0. , 1. ],
[0.42857143, 0.42857143, 0. , 0. ]])
然后我们可以绘制这些曲线(及其交点)
>>> import seaborn
>>> seaborn.set()
>>>
>>> ax = curve1.plot(num_pts=256)
>>> _ = curve2.plot(num_pts=256, ax=ax)
>>> lines = ax.plot(
... points[0, :], points[1, :],
... marker="o", linestyle="None", color="black")
>>> _ = ax.axis("scaled")
>>> _ = ax.set_xlim(-0.125, 1.125)
>>> _ = ax.set_ylim(-0.0625, 0.625)
有关API级别文档,请参阅Bézier Python 包文档。
开发
要添加功能或运行功能测试,请参阅DEVELOPMENT文档以获取有关如何开始的更多信息。
引用
对于使用bezier的出版物,有一个可以引用的JOSS论文。以下BibTeX条目可以用于引用
@article{Hermes2017,
doi = {10.21105/joss.00267},
url = {https://doi.org/10.21105%2Fjoss.00267},
year = {2017},
month = {Aug},
publisher = {The Open Journal},
volume = {2},
number = {16},
pages = {267},
author = {Danny Hermes},
title = {Helper for B{\'{e}}zier Curves, Triangles, and Higher Order Objects},
journal = {The Journal of Open Source Software}
}
可以通过Zenodo DOI引用该库的特定版本;查看版本列表。
许可
bezier在Apache 2.0许可下提供。有关更多详细信息,请参阅许可。
项目详细信息
关闭
bezier-2024.6.20.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b46357eb6019f969a583093f66e6b73747d5e41c10d9f3dfe327b2aa43dff8c |
|
MD5 | 6f30f305628b2b6cb9f5615f5c0608ff |
|
BLAKE2b-256 | 1d1a28aa7a72a5029f416c7d04c5cdae1b0b00d1c6c72a986689458e8e586446 |
关闭
bezier-2024.6.20-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8cf8c3e373440f799a48ccdf51bdd6428ceef5e1dd9bae9eb01711a0a73b8fdc |
|
MD5 | 608a754031a38dfd03885e83cf01a9d6 |
|
BLAKE2b-256 | 113c713170cd340a8fc81cc9acb88a5c371f9aaf43102bcdfec9e543843faee4 |
关闭
bezier-2024.6.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 21241b81f75739e2cfb2f705a9bb6e55489cc2d8a1d2a514b68ca55514aa5f09 |
|
MD5 | 98348e01c59eeaf53183968df3b08083 |
|
BLAKE2b-256 | 00a5dfa67b0de68ca25f37eeef3b85686f191991e8f20f76fdbde870dacb1c56 |
关闭
bezier-2024.6.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5199407fb9ad8bbae313dde49119ee33d684c2f81358082edea97345df6f493c |
|
MD5 | fc9b1f88ded08efc116cd7e6b768360d |
|
BLAKE2b-256 | f13c326228895c155a657079ac0094e8a3d225986332cc5b4c838f48ec18fbad |
关闭
bezier-2024.6.20-cp312-cp312-macosx_14_0_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bbe9e09dfee5cd23033aa4caf3b32b3d05d5977604b95b9c4e0220376c3c34b6 |
|
MD5 | f5c13d4b3cae8ee251cdcb414d707687 |
|
BLAKE2b-256 | 034da71c92270739cba039bc110e0c805c3b2f2c8360d7fac3ec861842443571 |
关闭
bezier-2024.6.20-cp312-cp312-macosx_14_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e18733c1fcf01a08822e6e8a6f86eb6e56067f368e4b09653d25368881765d7d |
|
MD5 | c5e36136fa1cf2c2aa2299b510ae619d |
|
BLAKE2b-256 | 0d4bdcfed092496f53565d40f7c3846db030babb227d9e25e44c7e1d4371713f |
关闭
bezier-2024.6.20-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ab942ec30c73425d7b7020cbde4e1b7bd7792e914fac585565786b205ef54c94 |
|
MD5 | 612649ee06e9de01060373f597b97849 |
|
BLAKE2b-256 | 709bcab28cdae18f739122905088845f8285f6271af3332e46b051c536804289 |
关闭
哈希值 for bezier-2024.6.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d3205f96f982f0dc45e1776d8995d572e228b0dbeab234c0acf4618a2e8dce0 |
|
MD5 | 996e7f66ca8158561ccd37d480ce4c6e |
|
BLAKE2b-256 | 0eec836adeee81afaabd7f41f7bc3840ffc7e8b50ac1b3ffdf6f6894a13cbcd4 |
关闭
哈希值 for bezier-2024.6.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 29bbecca56d6d152cd566ba626ceab1a95bbaf05205acf680da6d4d5beb0e87b |
|
MD5 | 71f0d3ef4b8cc1af83186eea0bbf22d0 |
|
BLAKE2b-256 | aa81b22deec7817ebdc2da7c45920687b5697830bc0961c83a1d2a72856b3ac7 |
关闭
哈希值 for bezier-2024.6.20-cp311-cp311-macosx_14_0_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28c50de2b7bc7afd19b3115e3f8ecad36bc281bf4eafbc335a7651b801dd3544 |
|
MD5 | 37f83074c54a586465c054fb4c1e3584 |
|
BLAKE2b-256 | f4e090eeab82f5e5c2c1f63e2ad7bf9ec188e0c699a410f4df1d886bd6a4b1b4 |
关闭
哈希值 for bezier-2024.6.20-cp311-cp311-macosx_14_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c860cc0e777a06cda9afa019824b9f48578b2964b0ae18ea7cbbe9d1a02066b6 |
|
MD5 | cf3ecd022f510f73f78ee3585cb2f1af |
|
BLAKE2b-256 | 96d502911e75ada6f740910a7203510920947acec31c7e910c8cac521ce897bc |
关闭
哈希值 for bezier-2024.6.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fd1d4776212bdd9aa08ad57fb6a82978d50d0eba6f58f68fad9b83446fe895f3 |
|
MD5 | b333df4a9134d26a55997a50160698a5 |
|
BLAKE2b-256 | db704ecdf9758fd680fdf423051b58ca2e64b6ff4cdd04f62dc1baceed0e0adf |
关闭
哈希值 for bezier-2024.6.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b8c081eacc25c840b1991a11961421cdb0ec41906df015db9ff08322cf63486 |
|
MD5 | 9a04cb18dc129a770bb96f591adc78f9 |
|
BLAKE2b-256 | b6200984381a3c9042810b2f9cf39dedac2acffe0546ded10a56cfa43ec4914b |
关闭
哈希值 for bezier-2024.6.20-cp310-cp310-macosx_14_0_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ad7ec863f3fa70bd0774ea49cd8f9ad6310251055ee127917b9b8dce085a9e91 |
|
MD5 | f63e7d927a35199814b3e2f9dadbbc49 |
|
BLAKE2b-256 | 9f72055a5a2f3988fe6ab9dad8f9ba6cfa59af0bbddd6972a76a3659b90ec281 |
关闭
哈希值 for bezier-2024.6.20-cp310-cp310-macosx_14_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 65d12159b919e3076c6a1b90c811b740cb1eb557d250947edb7bbc9a2157490d |
|
MD5 | 36af0abf1052d49aed9986f0bd77f9cf |
|
BLAKE2b-256 | e3266fe7391f422fb18ce258c904cd951f1cedd4e0e13fc4f664b9eec240fc36 |