在我看来,DC仅支持任何类型的曲线都是使用样条曲线。是否有任何库可以添加贝塞尔曲线功能,或者有没有办法将贝塞尔曲线转换为样条曲线?
答案 0 :(得分:2)
给定4个控制点,相关的三次贝塞尔曲线的公式为not hard to compute。计算曲线上的一组点后,可以使用DC.DrawLines
绘制它。
有一个python实现用于计算广义Bezier曲线上的点(无耻插件)here。在某种意义上,它可以接受任意数量的控制点(> 2)作为make_bezier
的输入。如果您只想要4控制点版本,则可以完全删除pascal_row
并替换
combinations=pascal_row(n-1)
与
combinations=(1,3,3,1)
答案 1 :(得分:1)
经过一番谷歌搜索后,我想我会选择支持wx.GraphicsContext的wx.GraphicsPath。除了抗锯齿(根据this page)
之外,它似乎完全符合我的需要