我希望能够从以下svg路径找到y = ax2 + bx + c的曲线方程:
<path id="curve1" d="M100,200 C100,100 400,100 400,200" />
这给出了四个点,可以在附图中看到。
- 100,200(紫色起点)
- 100,100(红色控制点1)
- 400,100(绿色控制点2)
- 400,200(蓝色终点)
我希望能够从以下svg路径找到y = ax2 + bx + c的曲线方程:
<path id="curve1" d="M100,200 C100,100 400,100 400,200" />
fx(t) = x1 * (1-t)³ + x2 * 3 * (1-t)²t + x3 * 3 * (1-t)t² + x4 * t³
fy(t) = y1 * (1-t)³ + y2 * 3 * (1-t)²t + y3 * 3 * (1-t)t² + y4 * t³
这条曲线是按照t
从0到1的范围绘制的。
所以你无法将这条曲线表示为y=ax²+b
的形式,原因有两个:
ax³+bx²+c
的公式;y
根本就不能用x
来表示,而是同时控制x
和y
值的“主参数”t
。我们知道,像y=ax²+b
这样的二次函数只能模拟抛物线,但是从图像中我们可以看出,这条曲线看起来根本不像其中任何一种(甚至不像被压扁的抛物线),因此在这种情况下,我们甚至无法用二次函数“勉强近似”这条曲线。
(有时候你可以做到这一点,但在这种情况下肯定不行)
fy(t) = y1 * (1-t)³ + y2 * 3 * (1-t)²t + y3 * 3 * (1-t)t² + y4 * t³ 并且我从你的文章中得到了三个t值(0.315、0.041和0.932),并且我知道y=0,因为我们将直线与轴对齐了。我能否重复使用对齐功能中的角度、ca、sa、ox和0y变量来查找交点xy坐标?如果我不需要绘制曲线,并且希望不必找到所有曲线的XY值,那么我不需要这样做。 - Derek Ewing