![]() |
1
11
贝塞尔曲线并不难画出来。给3分
这会在我们创建的两条边(边AB和边BC)之间进行插值。我们现在要做的唯一一件事就是用同样的t在p0和p1之间插值,如下所示:
在我们画出曲线之前,需要做一些事情。首先我们会走一些
|
![]() |
2
18
例如,这画了一颗心:
|
![]() |
3
7
你可以使用 aggdraw 在pil上,贝塞尔曲线是 supported . 编辑:
我举了一个例子,结果发现
下面就是这个例子:
This 如果要重新编译模块,应该修复这个错误… |
![]() |
4
4
尽管bezier curveto paths不适用于aggdraw,正如@toniru_¾a所提到的,但在aggdraw中还有另一种方法可以做到这一点。使用aggdraw而不是pil或您自己的bezier函数的好处是aggdraw将消除图像的锯齿,使其看起来更平滑(请参见底部的图片)。 AgGub符号
您可以使用
在路径字符串中,只需使用空格分隔多个节点。一旦你创建了你的符号,记住把它作为参数传递给
AggDraw符号中的贝塞尔曲线 具体来说,对于三次贝塞尔曲线,您写字母“C”或“C”,后跟6个数字(3组xy坐标x1、y1、x2、y2、x3、y3,数字之间带逗号,但第一个数字和字母之间不带逗号)。根据文件,还有其他贝塞尔版本使用字母“S(平滑立方贝塞尔),Q(二次贝塞尔),T(平滑二次贝塞尔)”。以下是一个完整的示例代码(需要PIL和AggDraw):
输出是一个平滑的曲线贝塞尔图:
|
![]() |
5
1
我发现了一种创建贝塞尔曲线的简单方法(不使用aggraw,也不使用复杂函数)。
|