为了计算贝塞尔曲线的长度,我一直在使用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())
其中p
和{}是曲线的端点,d
是两个控制点相对位置的垂直偏移量。(在我的应用程序中,曲线总是“向上”)。在
但是,我发现这个库调用获取曲线长度的速度非常慢。有没有其他的python库可以有更好的性能?在
Tags:
我可能会用pypy来运行我自己的bezier callable——我不记得前一阵子我上过一节图形课的时候特别困难。如果用纯python编写,pypy应该可以使它非常快。如果pypy不是一个选项,那么使用cython和cpython是下一个最好的选择。在
我经常使用纯python模块,m4对其进行预处理,以获得同一事物的纯python和cython版本的通用代码。看起来效果不错。实际上,有时我甚至会将m4作为一种宏语言而不是python,只是为了避免方法调用而不必在模块的维护版本中重复代码。在
相关问题 更多 >
编程相关推荐