Ven*_*soh 7 math bezier canvas formula quadratic
我有一个关于通过控制点弯曲公式的问题.如你所知,HTML帆布具有quadraticCurveTo(x1, y1, x2, y2)与x1 and x2作为控制点.
但是,当您尝试使用它绘制笔划时,笔划将永远不会触及控制点.
所以我们有这个公式:
x1 = xt * 2 - (x0 + x2) / 2;
y1 = yt * 2 - (y0 + y2) / 2;
Run Code Online (Sandbox Code Playgroud)
(xt, yt)=你要弯曲的点.t切线,因为它在该点垂直90度.
这会重新计算控制点位置.
我从一本书中得到了这个公式,但是这本书没有解释它是如何衍生出来的.我试过谷歌但是徒劳无功.
谁知道这个公式是如何衍生出来的?
谢谢,维恩.
二次贝塞尔曲线由方程描述:
x(t) = x0 * (1-t)^2 + 2 * x1 * t * (1 - t) + x2 * t^2 (与 y(t) 类似)。
如果我们应用参数值 t = 1/2(以某种方式 - 曲线的中间),我们将得到您的公式:
x(t=1/2) = xt = x0 * 1/4 + 2 * x1 * 1/4 + x2 * 1/4
然后
x1/2 = xt - (x0 + x2)/4
x1 = 2 * xt - (x0 + x2)/2
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |