【问题标题】:'fast' bezier curve length python library“快速”贝塞尔曲线长度python库
【发布时间】:2012-05-04 05:20:13
【问题描述】:

为了计算贝塞尔曲线的长度,我一直在使用pyx。

from pyx import path, unit
bez = path.curve(p[0], p[1], p[0], p[1] + d, q[0], q[1]-d, q[0],q[1])
edgelen = unit.tocm(bez.arclen())

其中pq 是曲线的端点,d 是两个控制点相对位置的垂直偏移量。 (在我的应用程序中,曲线总是“向上”)。

但是,我发现这个库调用获取曲线长度非常缓慢。还有其他可能具有更好性能的python库吗?

【问题讨论】:

    标签: python bezier pyx


    【解决方案1】:

    我可能会使用 pypy 滚动我自己的贝塞尔可调用函数 - 我不记得前段时间参加图形课程时它特别困难。如果你用纯 python 编写代码,pypy 应该会很快。如果 pypy 不是一个选项,那么使用 cython 和 cpython 是下一个最好的选择。

    我通常会采用纯 python 模块,然后 m4 对其进行预处理以获得同一事物的纯 python 和 cython 版本的通用代码。它似乎工作得很好。确实,有时我什至会使用 m4 作为宏语言而不是 python,只是为了避免方法调用而不在模块的维护版本中复制代码。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多