如何使用Python的PIL绘制贝塞尔曲线?
我正在使用Python的图像库,我想绘制一些贝塞尔曲线。我想我可以逐像素计算,但我希望有一些更简单的方法。
-
贝塞尔曲线并不难绘制自己。考虑到三点
A
,B
,C
你需要为了画出曲线三个线性插值。我们将标量t
用作线性插值的参数:P0 = A * t + (1 - t) * B P1 = B * t + (1 - t) * C
这将在我们创建的两个边(边AB和边BC)之间进行插值。现在我们唯一需要计算的点就是使用相同的t在P0和P1之间进行插值,如下所示:
Pfinal = P0 * t + (1 - t) * P1
在实际绘制曲线之前,需要完成几件事。首先,我们要走一些
dt
(δt),我们需要意识到这一点0 <= t <= 1
。如您所料,这不会给我们平滑的曲线,而是仅产生一组离散的绘图位置。解决此问题的最简单方法是在当前点和上一个点之间画一条线。