贝塞尔曲线、三角形和更高阶对象的辅助工具
项目描述
贝塞尔曲线、三角形和更高阶对象的辅助工具
此库提供
深入了解并查看!
为什么是贝塞尔?
贝塞尔曲线(以及三角形等)是一种参数曲线,它使用 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=bezierBezier是开源的,因此您也可以从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 |